Skip to content

Sienna-Platform/PowerOpenAPIModels

Repository files navigation

PowerOpenAPIModels.jl

Auto-generated Julia types from Sienna-Platform power system OpenAPI schemas.

Monorepo Structure

This repository contains five Julia packages:

Package Role
PowerCoreOpenAPIModels.jl Shared types, enums, base models
PowerOperationsOpenAPIModels.jl Operations API stubs
PowerInvestmentsOpenAPIModels.jl Investments API stubs
PowerDynamicsOpenAPIModels.jl Dynamics API stubs
PowerOpenAPIModels.jl Umbrella package

Installation

using Pkg

# Load only operations
Pkg.add("PowerOperationsOpenAPIModels")
using PowerOperationsOpenAPIModels

# Load everything
Pkg.add("PowerOpenAPIModels")
using PowerOpenAPIModels

Regenerating Stubs

Models are auto-generated from OpenAPI schemas in SiennaSchemas. There are two ways to regenerate locally:

Via local openapi-generator

# Uses ../SiennaSchemas by default
make generate SCHEMA_DIR=/path/to/SiennaSchemas

Via Docker build

make generate-docker

Manual Docker commands

# Build the codegen image
docker build -t power-codegen .

# Run generation (mount schemas and repo root)
make generate-docker CODEGEN_IMAGE=power-codegen

Testing

Either make validate or

julia test/validate.jl

Loading all models for testing

Dev and instantiate all models

julia --project=PowerOpenAPIModels.jl -e 'using Pkg
  Pkg.develop([
    PackageSpec(path="PowerCoreOpenAPIModels.jl"),
    PackageSpec(path="PowerOperationsOpenAPIModels.jl"),
    PackageSpec(path="PowerInvestmentsOpenAPIModels.jl"),
    PackageSpec(path="PowerDynamicsOpenAPIModels.jl"),
  ])
  Pkg.instantiate()'

About

No description, website, or topics provided.

Resources

License

Stars

0 stars

Watchers

0 watching

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages