openapi: 3.0.0
info:
  title: Angular Communities API
  version: 1.0.0
  description: Find Angular Event and Communities
  contact:
    name: Angular HUB
    url: https://angular-hub.com
tags:
  - name: Communities
  - name: Events
  - name: Podcasts
servers:
  - url: https://angular-hub.com/api/v1
paths:
  /communities:
    get:
      summary: Get a list of Angular communities
      tags:
        - Communities
      responses:
        '200':
          description: A list of Angular events and communities
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    type:
                      type: string
                    location:
                      type: string
                    logo:
                      type: string
                    eventsUrl:
                      type: string
                    websiteUrl:
                      type: string
                    organizersUrl:
                      type: string
                    twitterUrl:
                      type: string
                    linkedinUrl:
                      type: string
                    youtubeUrl:
                      type: string
                    twitchUrl:
                      type: string
                    callForPapersUrl:
                      type: string
                    events:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          type:
                            type: string
                          location:
                            type: string
                          date:
                            type: string
                          language:
                            type: string
                          isFree:
                            type: boolean
                          isRemote:
                            type: boolean
                          isOnsite:
                            type: boolean
                          callForPapersUrl:
                            type: string
                          callForPapersDueDate:
                            type: string
                          url:
                            type: string
  /events/upcoming:
    get:
      summary: Get a list of upcoming Angular events
      tags:
        - Events
      responses:
        '200':
          description: A list of upcoming Angular events
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    type:
                      type: string
                    location:
                      type: string
                    date:
                      type: string
                    language:
                      type: string
                    isFree:
                      type: boolean
                    isRemote:
                      type: boolean
                    isOnsite:
                      type: boolean
                    callForPapersUrl:
                      type: string
                    callForPapersDueDate:
                      type: string
                    url:
                      type: string
  /events/callforpapers:
    get:
      summary: Get a list of Angular communities with open call for papers
      tags:
        - Events
      parameters:
        - name: type
          in: query
          description: Event type (meetup, conference, workshop)
          required: false
          schema:
            type: string
      responses:
        '200':
          description: A list of Angular events with open call for papers
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    type:
                      type: string
                    location:
                      type: string
                    logo:
                      type: string
                    eventsUrl:
                      type: string
                    websiteUrl:
                      type: string
                    organizersUrl:
                      type: string
                    twitterUrl:
                      type: string
                    linkedinUrl:
                      type: string
                    youtubeUrl:
                      type: string
                    twitchUrl:
                      type: string
                    callForPapersUrl:
                      type: string
                    events:
                      type: array
                      items:
                        type: object
                        properties:
                          name:
                            type: string
                          type:
                            type: string
                          location:
                            type: string
                          date:
                            type: string
                          language:
                            type: string
                          isFree:
                            type: boolean
                          isRemote:
                            type: boolean
                          isOnsite:
                            type: boolean
                          callForPapersUrl:
                            type: string
                          callForPapersDueDate:
                            type: string
                          url:
                            type: string
  /podcasts:
    get:
      summary: Get a list of Angular podcasts
      tags:
        - Podcasts
      responses:
        '200':
          description: A list of Angular podcasts
          content:
            application/json:
              schema:
                type: array
                items:
                  type: object
                  properties:
                    name:
                      type: string
                    url:
                      type: string
                    logo:
                      type: string
                    language:
                      type: string
