# sdk.config
## Module Functions
### Initialize SDK Configuration <a name="init"></a>
Creates a sdk config with default configurations for the api/api version
**API Endpoint**: `POST /sdk/config/init`
#### Parameters
| `api_name` | ✓ | | `"my-project".to_string()` |
| `api_version` | ✗ | | `ApiVersion::VersionTypeEnum(VersionTypeEnum::Latest)` |
| `default_module_structure` | ✗ | | `SdkModuleStructureEnum::Flat` |
| `llm_coding_assistant` | ✗ | LLM coding assistants to include rules files for | `vec![InitSdkConfigLlmCodingAssistantItemEnum::ClaudeCode]` |
#### Example Snippet
```rust
let client = sideko_rest_api::SidekoClient::default()
.with_api_key_auth(&std::env::var("API_KEY").unwrap())
.with_cookie_auth(&std::env::var("API_KEY").unwrap());
let res = client
.sdk()
.config()
.init(sideko_rest_api::resources::sdk::config::InitRequest {
api_name: "my-project".to_string(),
..Default::default()
})
.await;
```
### Sync SDK Configuration <a name="sync"></a>
Updates provided config with missing default configurations for the api version
**API Endpoint**: `POST /sdk/config/sync`
#### Parameters
| `config` | ✓ | | `UploadFile::from_path("uploads/config.yaml").unwrap()` |
| `api_version` | ✗ | | `ApiVersion::VersionTypeEnum(VersionTypeEnum::Latest)` |
| `openapi` | ✗ | Use api_version in typical use. If this field is supplied, the configuration sync will match the spec rather than any API that lives in Sideko. | `UploadFile::from_path("uploads/openapi.yaml").unwrap()` |
#### Example Snippet
```rust
let client = sideko_rest_api::SidekoClient::default()
.with_api_key_auth(&std::env::var("API_KEY").unwrap())
.with_cookie_auth(&std::env::var("API_KEY").unwrap());
let res = client
.sdk()
.config()
.sync(sideko_rest_api::resources::sdk::config::SyncRequest {
config: sideko_rest_api::UploadFile::from_path("uploads/config.yaml")
.unwrap(),
openapi: Some(
sideko_rest_api::UploadFile::from_path("uploads/openapi.yaml").unwrap(),
),
..Default::default()
})
.await;
```