@@ -205,6 +205,46 @@ func (enum *CronStatus) UnmarshalJSON(data []byte) error {
205205 return nil
206206}
207207
208+ type DomainStatus string
209+
210+ const (
211+ // DomainStatusUnknown is [insert doc].
212+ DomainStatusUnknown = DomainStatus ("unknown" )
213+ // DomainStatusReady is [insert doc].
214+ DomainStatusReady = DomainStatus ("ready" )
215+ // DomainStatusDeleting is [insert doc].
216+ DomainStatusDeleting = DomainStatus ("deleting" )
217+ // DomainStatusError is [insert doc].
218+ DomainStatusError = DomainStatus ("error" )
219+ // DomainStatusCreating is [insert doc].
220+ DomainStatusCreating = DomainStatus ("creating" )
221+ // DomainStatusPending is [insert doc].
222+ DomainStatusPending = DomainStatus ("pending" )
223+ )
224+
225+ func (enum DomainStatus ) String () string {
226+ if enum == "" {
227+ // return default value if empty
228+ return "unknown"
229+ }
230+ return string (enum )
231+ }
232+
233+ func (enum DomainStatus ) MarshalJSON () ([]byte , error ) {
234+ return []byte (fmt .Sprintf (`"%s"` , enum )), nil
235+ }
236+
237+ func (enum * DomainStatus ) UnmarshalJSON (data []byte ) error {
238+ tmp := ""
239+
240+ if err := json .Unmarshal (data , & tmp ); err != nil {
241+ return err
242+ }
243+
244+ * enum = DomainStatus (DomainStatus (tmp ).String ())
245+ return nil
246+ }
247+
208248type ListContainersRequestOrderBy string
209249
210250const (
@@ -273,6 +313,42 @@ func (enum *ListCronsRequestOrderBy) UnmarshalJSON(data []byte) error {
273313 return nil
274314}
275315
316+ type ListDomainsRequestOrderBy string
317+
318+ const (
319+ // ListDomainsRequestOrderByCreatedAtAsc is [insert doc].
320+ ListDomainsRequestOrderByCreatedAtAsc = ListDomainsRequestOrderBy ("created_at_asc" )
321+ // ListDomainsRequestOrderByCreatedAtDesc is [insert doc].
322+ ListDomainsRequestOrderByCreatedAtDesc = ListDomainsRequestOrderBy ("created_at_desc" )
323+ // ListDomainsRequestOrderByHostnameAsc is [insert doc].
324+ ListDomainsRequestOrderByHostnameAsc = ListDomainsRequestOrderBy ("hostname_asc" )
325+ // ListDomainsRequestOrderByHostnameDesc is [insert doc].
326+ ListDomainsRequestOrderByHostnameDesc = ListDomainsRequestOrderBy ("hostname_desc" )
327+ )
328+
329+ func (enum ListDomainsRequestOrderBy ) String () string {
330+ if enum == "" {
331+ // return default value if empty
332+ return "created_at_asc"
333+ }
334+ return string (enum )
335+ }
336+
337+ func (enum ListDomainsRequestOrderBy ) MarshalJSON () ([]byte , error ) {
338+ return []byte (fmt .Sprintf (`"%s"` , enum )), nil
339+ }
340+
341+ func (enum * ListDomainsRequestOrderBy ) UnmarshalJSON (data []byte ) error {
342+ tmp := ""
343+
344+ if err := json .Unmarshal (data , & tmp ); err != nil {
345+ return err
346+ }
347+
348+ * enum = ListDomainsRequestOrderBy (ListDomainsRequestOrderBy (tmp ).String ())
349+ return nil
350+ }
351+
276352type ListLogsRequestOrderBy string
277353
278354const (
@@ -475,6 +551,23 @@ type Cron struct {
475551 Status CronStatus `json:"status"`
476552}
477553
554+ // Domain: domain
555+ type Domain struct {
556+ ID string `json:"id"`
557+
558+ Hostname string `json:"hostname"`
559+
560+ ContainerID string `json:"container_id"`
561+
562+ URL string `json:"url"`
563+ // Status:
564+ //
565+ // Default value: unknown
566+ Status DomainStatus `json:"status"`
567+
568+ ErrorMessage * string `json:"error_message"`
569+ }
570+
478571// ListContainersResponse: list containers response
479572type ListContainersResponse struct {
480573 Containers []* Container `json:"containers"`
@@ -489,6 +582,13 @@ type ListCronsResponse struct {
489582 TotalCount uint32 `json:"total_count"`
490583}
491584
585+ // ListDomainsResponse: list domains response
586+ type ListDomainsResponse struct {
587+ Domains []* Domain `json:"domains"`
588+
589+ TotalCount uint32 `json:"total_count"`
590+ }
591+
492592// ListLogsResponse: list logs response
493593type ListLogsResponse struct {
494594 Logs []* Log `json:"logs"`
@@ -1411,6 +1511,173 @@ func (s *API) ListLogs(req *ListLogsRequest, opts ...scw.RequestOption) (*ListLo
14111511 return & resp , nil
14121512}
14131513
1514+ type ListDomainsRequest struct {
1515+ Region scw.Region `json:"-"`
1516+
1517+ Page * int32 `json:"-"`
1518+
1519+ PageSize * uint32 `json:"-"`
1520+ // OrderBy:
1521+ //
1522+ // Default value: created_at_asc
1523+ OrderBy ListDomainsRequestOrderBy `json:"-"`
1524+
1525+ ContainerID string `json:"-"`
1526+ }
1527+
1528+ func (s * API ) ListDomains (req * ListDomainsRequest , opts ... scw.RequestOption ) (* ListDomainsResponse , error ) {
1529+ var err error
1530+
1531+ if req .Region == "" {
1532+ defaultRegion , _ := s .client .GetDefaultRegion ()
1533+ req .Region = defaultRegion
1534+ }
1535+
1536+ defaultPageSize , exist := s .client .GetDefaultPageSize ()
1537+ if (req .PageSize == nil || * req .PageSize == 0 ) && exist {
1538+ req .PageSize = & defaultPageSize
1539+ }
1540+
1541+ query := url.Values {}
1542+ parameter .AddToQuery (query , "page" , req .Page )
1543+ parameter .AddToQuery (query , "page_size" , req .PageSize )
1544+ parameter .AddToQuery (query , "order_by" , req .OrderBy )
1545+ parameter .AddToQuery (query , "container_id" , req .ContainerID )
1546+
1547+ if fmt .Sprint (req .Region ) == "" {
1548+ return nil , errors .New ("field Region cannot be empty in request" )
1549+ }
1550+
1551+ scwReq := & scw.ScalewayRequest {
1552+ Method : "GET" ,
1553+ Path : "/containers/v1beta1/regions/" + fmt .Sprint (req .Region ) + "/domains" ,
1554+ Query : query ,
1555+ Headers : http.Header {},
1556+ }
1557+
1558+ var resp ListDomainsResponse
1559+
1560+ err = s .client .Do (scwReq , & resp , opts ... )
1561+ if err != nil {
1562+ return nil , err
1563+ }
1564+ return & resp , nil
1565+ }
1566+
1567+ type GetDomainRequest struct {
1568+ Region scw.Region `json:"-"`
1569+
1570+ DomainID string `json:"-"`
1571+ }
1572+
1573+ func (s * API ) GetDomain (req * GetDomainRequest , opts ... scw.RequestOption ) (* Domain , error ) {
1574+ var err error
1575+
1576+ if req .Region == "" {
1577+ defaultRegion , _ := s .client .GetDefaultRegion ()
1578+ req .Region = defaultRegion
1579+ }
1580+
1581+ if fmt .Sprint (req .Region ) == "" {
1582+ return nil , errors .New ("field Region cannot be empty in request" )
1583+ }
1584+
1585+ if fmt .Sprint (req .DomainID ) == "" {
1586+ return nil , errors .New ("field DomainID cannot be empty in request" )
1587+ }
1588+
1589+ scwReq := & scw.ScalewayRequest {
1590+ Method : "GET" ,
1591+ Path : "/containers/v1beta1/regions/" + fmt .Sprint (req .Region ) + "/domains/" + fmt .Sprint (req .DomainID ) + "" ,
1592+ Headers : http.Header {},
1593+ }
1594+
1595+ var resp Domain
1596+
1597+ err = s .client .Do (scwReq , & resp , opts ... )
1598+ if err != nil {
1599+ return nil , err
1600+ }
1601+ return & resp , nil
1602+ }
1603+
1604+ type CreateDomainRequest struct {
1605+ Region scw.Region `json:"-"`
1606+
1607+ Hostname string `json:"hostname"`
1608+
1609+ ContainerID string `json:"container_id"`
1610+ }
1611+
1612+ func (s * API ) CreateDomain (req * CreateDomainRequest , opts ... scw.RequestOption ) (* Domain , error ) {
1613+ var err error
1614+
1615+ if req .Region == "" {
1616+ defaultRegion , _ := s .client .GetDefaultRegion ()
1617+ req .Region = defaultRegion
1618+ }
1619+
1620+ if fmt .Sprint (req .Region ) == "" {
1621+ return nil , errors .New ("field Region cannot be empty in request" )
1622+ }
1623+
1624+ scwReq := & scw.ScalewayRequest {
1625+ Method : "POST" ,
1626+ Path : "/containers/v1beta1/regions/" + fmt .Sprint (req .Region ) + "/domains" ,
1627+ Headers : http.Header {},
1628+ }
1629+
1630+ err = scwReq .SetBody (req )
1631+ if err != nil {
1632+ return nil , err
1633+ }
1634+
1635+ var resp Domain
1636+
1637+ err = s .client .Do (scwReq , & resp , opts ... )
1638+ if err != nil {
1639+ return nil , err
1640+ }
1641+ return & resp , nil
1642+ }
1643+
1644+ type DeleteDomainRequest struct {
1645+ Region scw.Region `json:"-"`
1646+
1647+ DomainID string `json:"-"`
1648+ }
1649+
1650+ func (s * API ) DeleteDomain (req * DeleteDomainRequest , opts ... scw.RequestOption ) (* Domain , error ) {
1651+ var err error
1652+
1653+ if req .Region == "" {
1654+ defaultRegion , _ := s .client .GetDefaultRegion ()
1655+ req .Region = defaultRegion
1656+ }
1657+
1658+ if fmt .Sprint (req .Region ) == "" {
1659+ return nil , errors .New ("field Region cannot be empty in request" )
1660+ }
1661+
1662+ if fmt .Sprint (req .DomainID ) == "" {
1663+ return nil , errors .New ("field DomainID cannot be empty in request" )
1664+ }
1665+
1666+ scwReq := & scw.ScalewayRequest {
1667+ Method : "DELETE" ,
1668+ Path : "/containers/v1beta1/regions/" + fmt .Sprint (req .Region ) + "/domains/" + fmt .Sprint (req .DomainID ) + "" ,
1669+ Headers : http.Header {},
1670+ }
1671+
1672+ var resp Domain
1673+
1674+ err = s .client .Do (scwReq , & resp , opts ... )
1675+ if err != nil {
1676+ return nil , err
1677+ }
1678+ return & resp , nil
1679+ }
1680+
14141681type IssueJWTRequest struct {
14151682 Region scw.Region `json:"-"`
14161683
@@ -1529,3 +1796,22 @@ func (r *ListLogsResponse) UnsafeAppend(res interface{}) (uint32, error) {
15291796 r .TotalCount += uint32 (len (results .Logs ))
15301797 return uint32 (len (results .Logs )), nil
15311798}
1799+
1800+ // UnsafeGetTotalCount should not be used
1801+ // Internal usage only
1802+ func (r * ListDomainsResponse ) UnsafeGetTotalCount () uint32 {
1803+ return r .TotalCount
1804+ }
1805+
1806+ // UnsafeAppend should not be used
1807+ // Internal usage only
1808+ func (r * ListDomainsResponse ) UnsafeAppend (res interface {}) (uint32 , error ) {
1809+ results , ok := res .(* ListDomainsResponse )
1810+ if ! ok {
1811+ return 0 , errors .New ("%T type cannot be appended to type %T" , res , r )
1812+ }
1813+
1814+ r .Domains = append (r .Domains , results .Domains ... )
1815+ r .TotalCount += uint32 (len (results .Domains ))
1816+ return uint32 (len (results .Domains )), nil
1817+ }
0 commit comments