api_specification_template:
  metadata:
    template_type: "api-specification-documentation"
    version: "1.0"
    spec_date: "{{spec_date}}"
    architect: "{{architect_name}}"
    api_version: "{{api_version}}"
    specification_id: "{{unique_spec_id}}"

  api_overview:
    api_name: "{{api_name}}"
    purpose: "{{api_primary_purpose}}"
    base_url: "{{base_url}}"
    authentication: "{{auth_method}}"
    supported_formats: "{{json|xml|both}}"
    rate_limiting: "{{requests_per_minute}}"

  endpoints:
    endpoint_1:
      method: "{{GET|POST|PUT|DELETE}}"
      path: "{{endpoint_path}}"
      description: "{{endpoint_purpose}}"
      parameters:
        - name: "{{param_name}}"
          type: "{{string|integer|boolean}}"
          required: "{{true|false}}"
          description: "{{param_description}}"
      responses:
        success:
          code: "200"
          description: "{{success_description}}"
          schema: "{{response_structure}}"
        error:
          code: "{{error_code}}"
          description: "{{error_description}}"

  security_requirements:
    authentication_flow: "{{oauth|jwt|api_key|basic}}"
    required_scopes: "{{permission_scopes}}"
    security_headers: "{{required_headers}}"
    rate_limiting_details: "{{throttling_rules}}"

  error_handling:
    standard_error_format: "{{error_response_structure}}"
    error_codes:
      - code: "{{error_code_1}}"
        message: "{{error_message}}"
        resolution: "{{how_to_fix}}"
      - code: "{{error_code_2}}"
        message: "{{error_message}}"
        resolution: "{{how_to_fix}}"