/** * This file was auto-generated by Fern from our API Definition. */ package com.seam.api; import com.seam.api.core.ClientOptions; import com.seam.api.core.Suppliers; import com.seam.api.resources.accesscodes.AccessCodesClient; import com.seam.api.resources.acs.AcsClient; import com.seam.api.resources.actionattempts.ActionAttemptsClient; import com.seam.api.resources.clientsessions.ClientSessionsClient; import com.seam.api.resources.connectedaccounts.ConnectedAccountsClient; import com.seam.api.resources.connectwebviews.ConnectWebviewsClient; import com.seam.api.resources.devices.DevicesClient; import com.seam.api.resources.events.EventsClient; import com.seam.api.resources.locks.LocksClient; import com.seam.api.resources.networks.NetworksClient; import com.seam.api.resources.noisesensors.NoiseSensorsClient; import com.seam.api.resources.phones.PhonesClient; import com.seam.api.resources.thermostats.ThermostatsClient; import com.seam.api.resources.useridentities.UserIdentitiesClient; import com.seam.api.resources.webhooks.WebhooksClient; import com.seam.api.resources.workspaces.WorkspacesClient; import java.util.function.Supplier; public class Seam { protected final ClientOptions clientOptions; protected final Supplier accessCodesClient; protected final Supplier actionAttemptsClient; protected final Supplier clientSessionsClient; protected final Supplier connectWebviewsClient; protected final Supplier connectedAccountsClient; protected final Supplier devicesClient; protected final Supplier eventsClient; protected final Supplier locksClient; protected final Supplier networksClient; protected final Supplier phonesClient; protected final Supplier thermostatsClient; protected final Supplier userIdentitiesClient; protected final Supplier webhooksClient; protected final Supplier workspacesClient; protected final Supplier acsClient; protected final Supplier noiseSensorsClient; public Seam(ClientOptions clientOptions) { this.clientOptions = clientOptions; this.accessCodesClient = Suppliers.memoize(() -> new AccessCodesClient(clientOptions)); this.actionAttemptsClient = Suppliers.memoize(() -> new ActionAttemptsClient(clientOptions)); this.clientSessionsClient = Suppliers.memoize(() -> new ClientSessionsClient(clientOptions)); this.connectWebviewsClient = Suppliers.memoize(() -> new ConnectWebviewsClient(clientOptions)); this.connectedAccountsClient = Suppliers.memoize(() -> new ConnectedAccountsClient(clientOptions)); this.devicesClient = Suppliers.memoize(() -> new DevicesClient(clientOptions)); this.eventsClient = Suppliers.memoize(() -> new EventsClient(clientOptions)); this.locksClient = Suppliers.memoize(() -> new LocksClient(clientOptions)); this.networksClient = Suppliers.memoize(() -> new NetworksClient(clientOptions)); this.phonesClient = Suppliers.memoize(() -> new PhonesClient(clientOptions)); this.thermostatsClient = Suppliers.memoize(() -> new ThermostatsClient(clientOptions)); this.userIdentitiesClient = Suppliers.memoize(() -> new UserIdentitiesClient(clientOptions)); this.webhooksClient = Suppliers.memoize(() -> new WebhooksClient(clientOptions)); this.workspacesClient = Suppliers.memoize(() -> new WorkspacesClient(clientOptions)); this.acsClient = Suppliers.memoize(() -> new AcsClient(clientOptions)); this.noiseSensorsClient = Suppliers.memoize(() -> new NoiseSensorsClient(clientOptions)); } public AccessCodesClient accessCodes() { return this.accessCodesClient.get(); } public ActionAttemptsClient actionAttempts() { return this.actionAttemptsClient.get(); } public ClientSessionsClient clientSessions() { return this.clientSessionsClient.get(); } public ConnectWebviewsClient connectWebviews() { return this.connectWebviewsClient.get(); } public ConnectedAccountsClient connectedAccounts() { return this.connectedAccountsClient.get(); } public DevicesClient devices() { return this.devicesClient.get(); } public EventsClient events() { return this.eventsClient.get(); } public LocksClient locks() { return this.locksClient.get(); } public NetworksClient networks() { return this.networksClient.get(); } public PhonesClient phones() { return this.phonesClient.get(); } public ThermostatsClient thermostats() { return this.thermostatsClient.get(); } public UserIdentitiesClient userIdentities() { return this.userIdentitiesClient.get(); } public WebhooksClient webhooks() { return this.webhooksClient.get(); } public WorkspacesClient workspaces() { return this.workspacesClient.get(); } public AcsClient acs() { return this.acsClient.get(); } public NoiseSensorsClient noiseSensors() { return this.noiseSensorsClient.get(); } public static SeamBuilder builder() { return new SeamBuilder(); } }