001/**
002 */
003package org.nasdanika.models.gitlab;
004
005import java.util.Date;
006import org.eclipse.emf.common.util.EList;
007import org.nasdanika.models.gitlab.codeowners.CodeOwner;
008
009/**
010 * <!-- begin-user-doc -->
011 * A representation of the model object '<em><b>Group</b></em>'.
012 * <!-- end-user-doc -->
013 *
014 * <p>
015 * The following features are supported:
016 * </p>
017 * <ul>
018 *   <li>{@link org.nasdanika.models.gitlab.Group#getId <em>Id</em>}</li>
019 *   <li>{@link org.nasdanika.models.gitlab.Group#getName <em>Name</em>}</li>
020 *   <li>{@link org.nasdanika.models.gitlab.Group#getAvatarUrl <em>Avatar Url</em>}</li>
021 *   <li>{@link org.nasdanika.models.gitlab.Group#getWebUrl <em>Web Url</em>}</li>
022 *   <li>{@link org.nasdanika.models.gitlab.Group#getFullName <em>Full Name</em>}</li>
023 *   <li>{@link org.nasdanika.models.gitlab.Group#getFullPath <em>Full Path</em>}</li>
024 *   <li>{@link org.nasdanika.models.gitlab.Group#getPath <em>Path</em>}</li>
025 *   <li>{@link org.nasdanika.models.gitlab.Group#getDescription <em>Description</em>}</li>
026 *   <li>{@link org.nasdanika.models.gitlab.Group#getVisibility <em>Visibility</em>}</li>
027 *   <li>{@link org.nasdanika.models.gitlab.Group#getLfsEnabled <em>Lfs Enabled</em>}</li>
028 *   <li>{@link org.nasdanika.models.gitlab.Group#getCreatedAt <em>Created At</em>}</li>
029 *   <li>{@link org.nasdanika.models.gitlab.Group#getProjects <em>Projects</em>}</li>
030 *   <li>{@link org.nasdanika.models.gitlab.Group#getShares <em>Shares</em>}</li>
031 *   <li>{@link org.nasdanika.models.gitlab.Group#getStorageSize <em>Storage Size</em>}</li>
032 *   <li>{@link org.nasdanika.models.gitlab.Group#getRepositorySize <em>Repository Size</em>}</li>
033 *   <li>{@link org.nasdanika.models.gitlab.Group#getLfsObjectsSize <em>Lfs Objects Size</em>}</li>
034 *   <li>{@link org.nasdanika.models.gitlab.Group#getJobArtifactsSize <em>Job Artifacts Size</em>}</li>
035 *   <li>{@link org.nasdanika.models.gitlab.Group#getSubGroups <em>Sub Groups</em>}</li>
036 *   <li>{@link org.nasdanika.models.gitlab.Group#getMembers <em>Members</em>}</li>
037 *   <li>{@link org.nasdanika.models.gitlab.Group#getCodeOwnership <em>Code Ownership</em>}</li>
038 *   <li>{@link org.nasdanika.models.gitlab.Group#getSubGroupsLoaded <em>Sub Groups Loaded</em>}</li>
039 *   <li>{@link org.nasdanika.models.gitlab.Group#getProjectsLoaded <em>Projects Loaded</em>}</li>
040 * </ul>
041 *
042 * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup()
043 * @model
044 * @generated
045 */
046public interface Group extends Loadable {
047
048        /**
049         * Returns the value of the '<em><b>Id</b></em>' attribute.
050         * <!-- begin-user-doc -->
051         * <!-- end-user-doc -->
052         * @return the value of the '<em>Id</em>' attribute.
053         * @see #setId(Long)
054         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_Id()
055         * @model
056         * @generated
057         */
058        Long getId();
059
060        /**
061         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getId <em>Id</em>}' attribute.
062         * <!-- begin-user-doc -->
063         * <!-- end-user-doc -->
064         * @param value the new value of the '<em>Id</em>' attribute.
065         * @see #getId()
066         * @generated
067         */
068        void setId(Long value);
069
070        /**
071         * Returns the value of the '<em><b>Name</b></em>' attribute.
072         * <!-- begin-user-doc -->
073         * <!-- end-user-doc -->
074         * @return the value of the '<em>Name</em>' attribute.
075         * @see #setName(String)
076         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_Name()
077         * @model
078         * @generated
079         */
080        String getName();
081
082        /**
083         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getName <em>Name</em>}' attribute.
084         * <!-- begin-user-doc -->
085         * <!-- end-user-doc -->
086         * @param value the new value of the '<em>Name</em>' attribute.
087         * @see #getName()
088         * @generated
089         */
090        void setName(String value);
091
092        /**
093         * Returns the value of the '<em><b>Avatar Url</b></em>' attribute.
094         * <!-- begin-user-doc -->
095         * <!-- end-user-doc -->
096         * @return the value of the '<em>Avatar Url</em>' attribute.
097         * @see #setAvatarUrl(String)
098         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_AvatarUrl()
099         * @model
100         * @generated
101         */
102        String getAvatarUrl();
103
104        /**
105         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getAvatarUrl <em>Avatar Url</em>}' attribute.
106         * <!-- begin-user-doc -->
107         * <!-- end-user-doc -->
108         * @param value the new value of the '<em>Avatar Url</em>' attribute.
109         * @see #getAvatarUrl()
110         * @generated
111         */
112        void setAvatarUrl(String value);
113
114        /**
115         * Returns the value of the '<em><b>Web Url</b></em>' attribute.
116         * <!-- begin-user-doc -->
117         * <!-- end-user-doc -->
118         * @return the value of the '<em>Web Url</em>' attribute.
119         * @see #setWebUrl(String)
120         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_WebUrl()
121         * @model
122         * @generated
123         */
124        String getWebUrl();
125
126        /**
127         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getWebUrl <em>Web Url</em>}' attribute.
128         * <!-- begin-user-doc -->
129         * <!-- end-user-doc -->
130         * @param value the new value of the '<em>Web Url</em>' attribute.
131         * @see #getWebUrl()
132         * @generated
133         */
134        void setWebUrl(String value);
135
136        /**
137         * Returns the value of the '<em><b>Full Name</b></em>' attribute.
138         * <!-- begin-user-doc -->
139         * <!-- end-user-doc -->
140         * @return the value of the '<em>Full Name</em>' attribute.
141         * @see #setFullName(String)
142         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_FullName()
143         * @model
144         * @generated
145         */
146        String getFullName();
147
148        /**
149         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getFullName <em>Full Name</em>}' attribute.
150         * <!-- begin-user-doc -->
151         * <!-- end-user-doc -->
152         * @param value the new value of the '<em>Full Name</em>' attribute.
153         * @see #getFullName()
154         * @generated
155         */
156        void setFullName(String value);
157
158        /**
159         * Returns the value of the '<em><b>Full Path</b></em>' attribute.
160         * <!-- begin-user-doc -->
161         * <!-- end-user-doc -->
162         * @return the value of the '<em>Full Path</em>' attribute.
163         * @see #setFullPath(String)
164         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_FullPath()
165         * @model
166         * @generated
167         */
168        String getFullPath();
169
170        /**
171         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getFullPath <em>Full Path</em>}' attribute.
172         * <!-- begin-user-doc -->
173         * <!-- end-user-doc -->
174         * @param value the new value of the '<em>Full Path</em>' attribute.
175         * @see #getFullPath()
176         * @generated
177         */
178        void setFullPath(String value);
179
180        /**
181         * Returns the value of the '<em><b>Path</b></em>' attribute.
182         * <!-- begin-user-doc -->
183         * <!-- end-user-doc -->
184         * @return the value of the '<em>Path</em>' attribute.
185         * @see #setPath(String)
186         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_Path()
187         * @model
188         * @generated
189         */
190        String getPath();
191
192        /**
193         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getPath <em>Path</em>}' attribute.
194         * <!-- begin-user-doc -->
195         * <!-- end-user-doc -->
196         * @param value the new value of the '<em>Path</em>' attribute.
197         * @see #getPath()
198         * @generated
199         */
200        void setPath(String value);
201
202        /**
203         * Returns the value of the '<em><b>Description</b></em>' attribute.
204         * <!-- begin-user-doc -->
205         * <!-- end-user-doc -->
206         * @return the value of the '<em>Description</em>' attribute.
207         * @see #setDescription(String)
208         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_Description()
209         * @model
210         * @generated
211         */
212        String getDescription();
213
214        /**
215         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getDescription <em>Description</em>}' attribute.
216         * <!-- begin-user-doc -->
217         * <!-- end-user-doc -->
218         * @param value the new value of the '<em>Description</em>' attribute.
219         * @see #getDescription()
220         * @generated
221         */
222        void setDescription(String value);
223
224        /**
225         * Returns the value of the '<em><b>Visibility</b></em>' attribute.
226         * The literals are from the enumeration {@link org.nasdanika.models.gitlab.Visibility}.
227         * <!-- begin-user-doc -->
228         * <!-- end-user-doc -->
229         * @return the value of the '<em>Visibility</em>' attribute.
230         * @see org.nasdanika.models.gitlab.Visibility
231         * @see #setVisibility(Visibility)
232         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_Visibility()
233         * @model
234         * @generated
235         */
236        Visibility getVisibility();
237
238        /**
239         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getVisibility <em>Visibility</em>}' attribute.
240         * <!-- begin-user-doc -->
241         * <!-- end-user-doc -->
242         * @param value the new value of the '<em>Visibility</em>' attribute.
243         * @see org.nasdanika.models.gitlab.Visibility
244         * @see #getVisibility()
245         * @generated
246         */
247        void setVisibility(Visibility value);
248
249        /**
250         * Returns the value of the '<em><b>Lfs Enabled</b></em>' attribute.
251         * <!-- begin-user-doc -->
252         * <!-- end-user-doc -->
253         * @return the value of the '<em>Lfs Enabled</em>' attribute.
254         * @see #setLfsEnabled(Boolean)
255         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_LfsEnabled()
256         * @model
257         * @generated
258         */
259        Boolean getLfsEnabled();
260
261        /**
262         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getLfsEnabled <em>Lfs Enabled</em>}' attribute.
263         * <!-- begin-user-doc -->
264         * <!-- end-user-doc -->
265         * @param value the new value of the '<em>Lfs Enabled</em>' attribute.
266         * @see #getLfsEnabled()
267         * @generated
268         */
269        void setLfsEnabled(Boolean value);
270
271        /**
272         * Returns the value of the '<em><b>Created At</b></em>' attribute.
273         * <!-- begin-user-doc -->
274         * <!-- end-user-doc -->
275         * @return the value of the '<em>Created At</em>' attribute.
276         * @see #setCreatedAt(Date)
277         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_CreatedAt()
278         * @model
279         * @generated
280         */
281        Date getCreatedAt();
282
283        /**
284         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getCreatedAt <em>Created At</em>}' attribute.
285         * <!-- begin-user-doc -->
286         * <!-- end-user-doc -->
287         * @param value the new value of the '<em>Created At</em>' attribute.
288         * @see #getCreatedAt()
289         * @generated
290         */
291        void setCreatedAt(Date value);
292
293        /**
294         * Returns the value of the '<em><b>Projects</b></em>' containment reference list.
295         * The list contents are of type {@link org.nasdanika.models.gitlab.Project}.
296         * <!-- begin-user-doc -->
297         * <!-- end-user-doc -->
298         * @return the value of the '<em>Projects</em>' containment reference list.
299         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_Projects()
300         * @model containment="true" keys="id"
301         * @generated
302         */
303        EList<Project> getProjects();
304
305        /**
306         * Returns the value of the '<em><b>Shares</b></em>' reference list.
307         * The list contents are of type {@link org.nasdanika.models.gitlab.ProjectSharedGroup}.
308         * It is bidirectional and its opposite is '{@link org.nasdanika.models.gitlab.ProjectSharedGroup#getGroup <em>Group</em>}'.
309         * <!-- begin-user-doc -->
310         * <!-- end-user-doc -->
311         * @return the value of the '<em>Shares</em>' reference list.
312         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_Shares()
313         * @see org.nasdanika.models.gitlab.ProjectSharedGroup#getGroup
314         * @model opposite="group"
315         * @generated
316         */
317        EList<ProjectSharedGroup> getShares();
318
319        /**
320         * Returns the value of the '<em><b>Storage Size</b></em>' attribute.
321         * <!-- begin-user-doc -->
322         * <!-- end-user-doc -->
323         * @return the value of the '<em>Storage Size</em>' attribute.
324         * @see #setStorageSize(Long)
325         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_StorageSize()
326         * @model
327         * @generated
328         */
329        Long getStorageSize();
330
331        /**
332         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getStorageSize <em>Storage Size</em>}' attribute.
333         * <!-- begin-user-doc -->
334         * <!-- end-user-doc -->
335         * @param value the new value of the '<em>Storage Size</em>' attribute.
336         * @see #getStorageSize()
337         * @generated
338         */
339        void setStorageSize(Long value);
340
341        /**
342         * Returns the value of the '<em><b>Repository Size</b></em>' attribute.
343         * <!-- begin-user-doc -->
344         * <!-- end-user-doc -->
345         * @return the value of the '<em>Repository Size</em>' attribute.
346         * @see #setRepositorySize(Long)
347         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_RepositorySize()
348         * @model
349         * @generated
350         */
351        Long getRepositorySize();
352
353        /**
354         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getRepositorySize <em>Repository Size</em>}' attribute.
355         * <!-- begin-user-doc -->
356         * <!-- end-user-doc -->
357         * @param value the new value of the '<em>Repository Size</em>' attribute.
358         * @see #getRepositorySize()
359         * @generated
360         */
361        void setRepositorySize(Long value);
362
363        /**
364         * Returns the value of the '<em><b>Lfs Objects Size</b></em>' attribute.
365         * <!-- begin-user-doc -->
366         * <!-- end-user-doc -->
367         * @return the value of the '<em>Lfs Objects Size</em>' attribute.
368         * @see #setLfsObjectsSize(Long)
369         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_LfsObjectsSize()
370         * @model
371         * @generated
372         */
373        Long getLfsObjectsSize();
374
375        /**
376         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getLfsObjectsSize <em>Lfs Objects Size</em>}' attribute.
377         * <!-- begin-user-doc -->
378         * <!-- end-user-doc -->
379         * @param value the new value of the '<em>Lfs Objects Size</em>' attribute.
380         * @see #getLfsObjectsSize()
381         * @generated
382         */
383        void setLfsObjectsSize(Long value);
384
385        /**
386         * Returns the value of the '<em><b>Job Artifacts Size</b></em>' attribute.
387         * <!-- begin-user-doc -->
388         * <!-- end-user-doc -->
389         * @return the value of the '<em>Job Artifacts Size</em>' attribute.
390         * @see #setJobArtifactsSize(Long)
391         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_JobArtifactsSize()
392         * @model
393         * @generated
394         */
395        Long getJobArtifactsSize();
396
397        /**
398         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getJobArtifactsSize <em>Job Artifacts Size</em>}' attribute.
399         * <!-- begin-user-doc -->
400         * <!-- end-user-doc -->
401         * @param value the new value of the '<em>Job Artifacts Size</em>' attribute.
402         * @see #getJobArtifactsSize()
403         * @generated
404         */
405        void setJobArtifactsSize(Long value);
406
407        /**
408         * Returns the value of the '<em><b>Sub Groups</b></em>' containment reference list.
409         * The list contents are of type {@link org.nasdanika.models.gitlab.Group}.
410         * <!-- begin-user-doc -->
411         * <!-- end-user-doc -->
412         * @return the value of the '<em>Sub Groups</em>' containment reference list.
413         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_SubGroups()
414         * @model containment="true" keys="id"
415         * @generated
416         */
417        EList<Group> getSubGroups();
418
419        /**
420         * Returns the value of the '<em><b>Members</b></em>' containment reference list.
421         * The list contents are of type {@link org.nasdanika.models.gitlab.Member}.
422         * <!-- begin-user-doc -->
423         * <!-- end-user-doc -->
424         * @return the value of the '<em>Members</em>' containment reference list.
425         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_Members()
426         * @model containment="true" keys="id"
427         * @generated
428         */
429        EList<Member> getMembers();
430
431        /**
432         * Returns the value of the '<em><b>Code Ownership</b></em>' reference list.
433         * The list contents are of type {@link org.nasdanika.models.gitlab.codeowners.CodeOwner}.
434         * It is bidirectional and its opposite is '{@link org.nasdanika.models.gitlab.codeowners.CodeOwner#getGroup <em>Group</em>}'.
435         * <!-- begin-user-doc -->
436         * <!-- end-user-doc -->
437         * @return the value of the '<em>Code Ownership</em>' reference list.
438         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_CodeOwnership()
439         * @see org.nasdanika.models.gitlab.codeowners.CodeOwner#getGroup
440         * @model opposite="group"
441         * @generated
442         */
443        EList<CodeOwner> getCodeOwnership();
444
445        /**
446         * Returns the value of the '<em><b>Sub Groups Loaded</b></em>' attribute.
447         * <!-- begin-user-doc -->
448         * <!-- end-user-doc -->
449         * <!-- begin-model-doc -->
450         * Timestamp when this group's sub-groups were loaded. Deprecated, use loads
451         * <!-- end-model-doc -->
452         * @return the value of the '<em>Sub Groups Loaded</em>' attribute.
453         * @see #setSubGroupsLoaded(Date)
454         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_SubGroupsLoaded()
455         * @model
456         * @generated
457         */
458        Date getSubGroupsLoaded();
459
460        /**
461         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getSubGroupsLoaded <em>Sub Groups Loaded</em>}' attribute.
462         * <!-- begin-user-doc -->
463         * <!-- end-user-doc -->
464         * @param value the new value of the '<em>Sub Groups Loaded</em>' attribute.
465         * @see #getSubGroupsLoaded()
466         * @generated
467         */
468        void setSubGroupsLoaded(Date value);
469
470        /**
471         * Returns the value of the '<em><b>Projects Loaded</b></em>' attribute.
472         * <!-- begin-user-doc -->
473         * <!-- end-user-doc -->
474         * <!-- begin-model-doc -->
475         * Timestamp when this group projects were loaded. Deprecated use loads
476         * <!-- end-model-doc -->
477         * @return the value of the '<em>Projects Loaded</em>' attribute.
478         * @see #setProjectsLoaded(Date)
479         * @see org.nasdanika.models.gitlab.GitLabPackage#getGroup_ProjectsLoaded()
480         * @model
481         * @generated
482         */
483        Date getProjectsLoaded();
484
485        /**
486         * Sets the value of the '{@link org.nasdanika.models.gitlab.Group#getProjectsLoaded <em>Projects Loaded</em>}' attribute.
487         * <!-- begin-user-doc -->
488         * <!-- end-user-doc -->
489         * @param value the new value of the '<em>Projects Loaded</em>' attribute.
490         * @see #getProjectsLoaded()
491         * @generated
492         */
493        void setProjectsLoaded(Date value);
494} // Group