import * as HttpClient from "effect/unstable/http/HttpClient";
import * as S from "effect/Schema";
import * as stream from "effect/Stream";
import * as API from "../client/api.js";
import * as T from "../traits.js";
import * as C from "../category.js";
const svc = T.AwsApiService({
    sdkId: "IoTTwinMaker",
    serviceShapeName: "AWSIoTTwinMaker",
});
const auth = T.AwsAuthSigv4({ name: "iottwinmaker" });
const ver = T.ServiceVersion("2021-11-29");
const proto = T.AwsProtocolsRestJson1();
const rules = T.EndpointResolver((p, _) => {
    const { Region, UseDualStack = false, UseFIPS = false, Endpoint } = p;
    const e = (u, p = {}, h = {}) => ({
        type: "endpoint",
        endpoint: { url: u, properties: p, headers: h },
    });
    const err = (m) => ({
        type: "error",
        message: m,
    });
    if (Endpoint != null) {
        if (UseFIPS === true) {
            return err("Invalid Configuration: FIPS and custom endpoint are not supported");
        }
        if (UseDualStack === true) {
            return err("Invalid Configuration: Dualstack and custom endpoint are not supported");
        }
        return e(Endpoint);
    }
    if (Region != null) {
        {
            const PartitionResult = _.partition(Region);
            if (PartitionResult != null && PartitionResult !== false) {
                if (UseFIPS === true && UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsFIPS") &&
                        true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://iottwinmaker-fips.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("FIPS and DualStack are enabled, but this partition does not support one or both");
                }
                if (UseFIPS === true) {
                    if (_.getAttr(PartitionResult, "supportsFIPS") === true) {
                        return e(`https://iottwinmaker-fips.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
                    }
                    return err("FIPS is enabled but this partition does not support FIPS");
                }
                if (UseDualStack === true) {
                    if (true === _.getAttr(PartitionResult, "supportsDualStack")) {
                        return e(`https://iottwinmaker.${Region}.${_.getAttr(PartitionResult, "dualStackDnsSuffix")}`);
                    }
                    return err("DualStack is enabled but this partition does not support DualStack");
                }
                return e(`https://iottwinmaker.${Region}.${_.getAttr(PartitionResult, "dnsSuffix")}`);
            }
        }
    }
    return err("Invalid Configuration: Missing Region");
});
export const ExternalIdProperty = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const EntityPropertyReference = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    componentName: S.optional(S.String),
    componentPath: S.optional(S.String),
    externalIdProperty: S.optional(ExternalIdProperty),
    entityId: S.optional(S.String),
    propertyName: S.String,
})).annotate({
    identifier: "EntityPropertyReference",
});
export const DataValueList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.suspend(() => DataValue).annotate({
    identifier: "DataValue",
}));
export const DataValueMap = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.suspend(() => DataValue)
    .annotate({ identifier: "DataValue" })
    .pipe(S.optional));
export const RelationshipValue = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    targetEntityId: S.optional(S.String),
    targetComponentName: S.optional(S.String),
})).annotate({
    identifier: "RelationshipValue",
});
export const DataValue = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    booleanValue: S.optional(S.Boolean),
    doubleValue: S.optional(S.Number),
    integerValue: S.optional(S.Number),
    longValue: S.optional(S.Number),
    stringValue: S.optional(S.String),
    listValue: S.optional(S.suspend(() => DataValueList).annotate({ identifier: "DataValueList" })),
    mapValue: S.optional(S.suspend(() => DataValueMap).annotate({ identifier: "DataValueMap" })),
    relationshipValue: S.optional(RelationshipValue),
    expression: S.optional(S.String),
})).annotate({ identifier: "DataValue" });
export const PropertyValue = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    timestamp: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    value: DataValue,
    time: S.optional(S.String),
})).annotate({ identifier: "PropertyValue" });
export const PropertyValues = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(PropertyValue);
export const PropertyValueEntry = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    entityPropertyReference: EntityPropertyReference,
    propertyValues: S.optional(PropertyValues),
})).annotate({
    identifier: "PropertyValueEntry",
});
export const Entries = /*@__PURE__*/ /*#__PURE__*/ S.Array(PropertyValueEntry);
export const BatchPutPropertyValuesRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    entries: Entries,
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workspaces/{workspaceId}/entity-properties",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "BatchPutPropertyValuesRequest",
});
export const BatchPutPropertyError = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    errorCode: S.String,
    errorMessage: S.String,
    entry: PropertyValueEntry,
})).annotate({
    identifier: "BatchPutPropertyError",
});
export const Errors = /*@__PURE__*/ /*#__PURE__*/ S.Array(BatchPutPropertyError);
export const BatchPutPropertyErrorEntry = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ errors: Errors })).annotate({
    identifier: "BatchPutPropertyErrorEntry",
});
export const ErrorEntries = /*@__PURE__*/ /*#__PURE__*/ S.Array(BatchPutPropertyErrorEntry);
export const BatchPutPropertyValuesResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ errorEntries: ErrorEntries })).annotate({
    identifier: "BatchPutPropertyValuesResponse",
});
export const CancelMetadataTransferJobRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    metadataTransferJobId: S.String.pipe(T.HttpLabel("metadataTransferJobId")),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/metadata-transfer-jobs/{metadataTransferJobId}/cancel",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CancelMetadataTransferJobRequest",
});
export const ErrorDetails = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ code: S.optional(S.String), message: S.optional(S.String) })).annotate({ identifier: "ErrorDetails" });
export const MetadataTransferJobStatus = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    state: S.optional(S.String),
    error: S.optional(ErrorDetails),
    queuedPosition: S.optional(S.Number),
})).annotate({
    identifier: "MetadataTransferJobStatus",
});
export const MetadataTransferJobProgress = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    totalCount: S.optional(S.Number),
    succeededCount: S.optional(S.Number),
    skippedCount: S.optional(S.Number),
    failedCount: S.optional(S.Number),
})).annotate({
    identifier: "MetadataTransferJobProgress",
});
export const CancelMetadataTransferJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    metadataTransferJobId: S.String,
    arn: S.String,
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    status: MetadataTransferJobStatus,
    progress: S.optional(MetadataTransferJobProgress),
})).annotate({
    identifier: "CancelMetadataTransferJobResponse",
});
export const Relationship = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    targetComponentTypeId: S.optional(S.String),
    relationshipType: S.optional(S.String),
})).annotate({ identifier: "Relationship" });
export const DataType = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    type: S.String,
    nestedType: S.optional(S.suspend(() => DataType).annotate({
        identifier: "DataType",
    })),
    allowedValues: S.optional(S.suspend(() => DataValueList).annotate({ identifier: "DataValueList" })),
    unitOfMeasure: S.optional(S.String),
    relationship: S.optional(Relationship),
})).annotate({ identifier: "DataType" });
export const Configuration = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const PropertyDefinitionRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    dataType: S.optional(DataType),
    isRequiredInEntity: S.optional(S.Boolean),
    isExternalId: S.optional(S.Boolean),
    isStoredExternally: S.optional(S.Boolean),
    isTimeSeries: S.optional(S.Boolean),
    defaultValue: S.optional(DataValue),
    configuration: S.optional(Configuration),
    displayName: S.optional(S.String),
})).annotate({
    identifier: "PropertyDefinitionRequest",
});
export const PropertyDefinitionsRequest = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, PropertyDefinitionRequest.pipe(S.optional));
export const ExtendsFrom = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const RequiredProperties = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const LambdaFunction = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ arn: S.String })).annotate({ identifier: "LambdaFunction" });
export const DataConnector = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    lambda: S.optional(LambdaFunction),
    isNative: S.optional(S.Boolean),
})).annotate({ identifier: "DataConnector" });
export const FunctionRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    requiredProperties: S.optional(RequiredProperties),
    scope: S.optional(S.String),
    implementedBy: S.optional(DataConnector),
})).annotate({
    identifier: "FunctionRequest",
});
export const FunctionsRequest = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, FunctionRequest.pipe(S.optional));
export const TagMap = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const PropertyNames = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const PropertyGroupRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    groupType: S.optional(S.String),
    propertyNames: S.optional(PropertyNames),
})).annotate({
    identifier: "PropertyGroupRequest",
});
export const PropertyGroupsRequest = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, PropertyGroupRequest.pipe(S.optional));
export const CompositeComponentTypeRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ componentTypeId: S.optional(S.String) })).annotate({
    identifier: "CompositeComponentTypeRequest",
});
export const CompositeComponentTypesRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, CompositeComponentTypeRequest.pipe(S.optional));
export const CreateComponentTypeRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    isSingleton: S.optional(S.Boolean),
    componentTypeId: S.String.pipe(T.HttpLabel("componentTypeId")),
    description: S.optional(S.String),
    propertyDefinitions: S.optional(PropertyDefinitionsRequest),
    extendsFrom: S.optional(ExtendsFrom),
    functions: S.optional(FunctionsRequest),
    tags: S.optional(TagMap),
    propertyGroups: S.optional(PropertyGroupsRequest),
    componentTypeName: S.optional(S.String),
    compositeComponentTypes: S.optional(CompositeComponentTypesRequest),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workspaces/{workspaceId}/component-types/{componentTypeId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateComponentTypeRequest",
});
export const CreateComponentTypeResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    arn: S.String,
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    state: S.String,
})).annotate({
    identifier: "CreateComponentTypeResponse",
});
export const PropertyRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    definition: S.optional(PropertyDefinitionRequest),
    value: S.optional(DataValue),
    updateType: S.optional(S.String),
})).annotate({
    identifier: "PropertyRequest",
});
export const PropertyRequests = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, PropertyRequest.pipe(S.optional));
export const ComponentPropertyGroupRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    groupType: S.optional(S.String),
    propertyNames: S.optional(PropertyNames),
    updateType: S.optional(S.String),
})).annotate({
    identifier: "ComponentPropertyGroupRequest",
});
export const ComponentPropertyGroupRequests = 
/*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, ComponentPropertyGroupRequest.pipe(S.optional));
export const ComponentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    description: S.optional(S.String),
    componentTypeId: S.optional(S.String),
    properties: S.optional(PropertyRequests),
    propertyGroups: S.optional(ComponentPropertyGroupRequests),
})).annotate({
    identifier: "ComponentRequest",
});
export const ComponentsMapRequest = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, ComponentRequest.pipe(S.optional));
export const CompositeComponentRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    description: S.optional(S.String),
    properties: S.optional(PropertyRequests),
    propertyGroups: S.optional(ComponentPropertyGroupRequests),
})).annotate({
    identifier: "CompositeComponentRequest",
});
export const CompositeComponentsMapRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, CompositeComponentRequest.pipe(S.optional));
export const CreateEntityRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    entityId: S.optional(S.String),
    entityName: S.String,
    description: S.optional(S.String),
    components: S.optional(ComponentsMapRequest),
    compositeComponents: S.optional(CompositeComponentsMapRequest),
    parentEntityId: S.optional(S.String),
    tags: S.optional(TagMap),
}).pipe(T.all(T.Http({ method: "POST", uri: "/workspaces/{workspaceId}/entities" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateEntityRequest",
});
export const CreateEntityResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    entityId: S.String,
    arn: S.String,
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    state: S.String,
})).annotate({
    identifier: "CreateEntityResponse",
});
export const S3SourceConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ location: S.String })).annotate({
    identifier: "S3SourceConfiguration",
});
export const FilterByAssetModel = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assetModelId: S.optional(S.String),
    assetModelExternalId: S.optional(S.String),
    includeOffspring: S.optional(S.Boolean),
    includeAssets: S.optional(S.Boolean),
})).annotate({
    identifier: "FilterByAssetModel",
});
export const FilterByAsset = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    assetId: S.optional(S.String),
    assetExternalId: S.optional(S.String),
    includeOffspring: S.optional(S.Boolean),
    includeAssetModel: S.optional(S.Boolean),
})).annotate({ identifier: "FilterByAsset" });
export const IotSiteWiseSourceConfigurationFilter = 
/*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ filterByAssetModel: FilterByAssetModel }),
    S.Struct({ filterByAsset: FilterByAsset }),
]);
export const IotSiteWiseSourceConfigurationFilters = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(IotSiteWiseSourceConfigurationFilter);
export const IotSiteWiseSourceConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ filters: S.optional(IotSiteWiseSourceConfigurationFilters) })).annotate({
    identifier: "IotSiteWiseSourceConfiguration",
});
export const FilterByComponentType = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ componentTypeId: S.String })).annotate({
    identifier: "FilterByComponentType",
});
export const FilterByEntity = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ entityId: S.String })).annotate({ identifier: "FilterByEntity" });
export const IotTwinMakerSourceConfigurationFilter = 
/*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ filterByComponentType: FilterByComponentType }),
    S.Struct({ filterByEntity: FilterByEntity }),
]);
export const IotTwinMakerSourceConfigurationFilters = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(IotTwinMakerSourceConfigurationFilter);
export const IotTwinMakerSourceConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspace: S.String,
    filters: S.optional(IotTwinMakerSourceConfigurationFilters),
})).annotate({
    identifier: "IotTwinMakerSourceConfiguration",
});
export const SourceConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    type: S.String,
    s3Configuration: S.optional(S3SourceConfiguration),
    iotSiteWiseConfiguration: S.optional(IotSiteWiseSourceConfiguration),
    iotTwinMakerConfiguration: S.optional(IotTwinMakerSourceConfiguration),
})).annotate({
    identifier: "SourceConfiguration",
});
export const SourceConfigurations = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SourceConfiguration);
export const S3DestinationConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ location: S.String })).annotate({
    identifier: "S3DestinationConfiguration",
});
export const IotTwinMakerDestinationConfiguration = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ workspace: S.String })).annotate({
    identifier: "IotTwinMakerDestinationConfiguration",
});
export const DestinationConfiguration = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    type: S.String,
    s3Configuration: S.optional(S3DestinationConfiguration),
    iotTwinMakerConfiguration: S.optional(IotTwinMakerDestinationConfiguration),
})).annotate({
    identifier: "DestinationConfiguration",
});
export const CreateMetadataTransferJobRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    metadataTransferJobId: S.optional(S.String),
    description: S.optional(S.String),
    sources: SourceConfigurations,
    destination: DestinationConfiguration,
}).pipe(T.all(T.Http({ method: "POST", uri: "/metadata-transfer-jobs" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateMetadataTransferJobRequest",
});
export const CreateMetadataTransferJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    metadataTransferJobId: S.String,
    arn: S.String,
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    status: MetadataTransferJobStatus,
})).annotate({
    identifier: "CreateMetadataTransferJobResponse",
});
export const SceneCapabilities = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const SceneMetadataMap = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const CreateSceneRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    sceneId: S.String,
    contentLocation: S.String,
    description: S.optional(S.String),
    capabilities: S.optional(SceneCapabilities),
    tags: S.optional(TagMap),
    sceneMetadata: S.optional(SceneMetadataMap),
}).pipe(T.all(T.Http({ method: "POST", uri: "/workspaces/{workspaceId}/scenes" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateSceneRequest",
});
export const CreateSceneResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    arn: S.String,
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
})).annotate({
    identifier: "CreateSceneResponse",
});
export const CreateSyncJobRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    syncSource: S.String.pipe(T.HttpLabel("syncSource")),
    syncRole: S.String,
    tags: S.optional(TagMap),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workspaces/{workspaceId}/sync-jobs/{syncSource}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateSyncJobRequest",
});
export const CreateSyncJobResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    arn: S.String,
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    state: S.String,
})).annotate({
    identifier: "CreateSyncJobResponse",
});
export const CreateWorkspaceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    description: S.optional(S.String),
    s3Location: S.optional(S.String),
    role: S.optional(S.String),
    tags: S.optional(TagMap),
}).pipe(T.all(T.Http({ method: "POST", uri: "/workspaces/{workspaceId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "CreateWorkspaceRequest",
});
export const CreateWorkspaceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    arn: S.String,
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
})).annotate({
    identifier: "CreateWorkspaceResponse",
});
export const DeleteComponentTypeRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    componentTypeId: S.String.pipe(T.HttpLabel("componentTypeId")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/workspaces/{workspaceId}/component-types/{componentTypeId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteComponentTypeRequest",
});
export const DeleteComponentTypeResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ state: S.String })).annotate({
    identifier: "DeleteComponentTypeResponse",
});
export const DeleteEntityRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    entityId: S.String.pipe(T.HttpLabel("entityId")),
    isRecursive: S.optional(S.Boolean).pipe(T.HttpQuery("isRecursive")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/workspaces/{workspaceId}/entities/{entityId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteEntityRequest",
});
export const DeleteEntityResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ state: S.String })).annotate({
    identifier: "DeleteEntityResponse",
});
export const DeleteSceneRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    sceneId: S.String.pipe(T.HttpLabel("sceneId")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/workspaces/{workspaceId}/scenes/{sceneId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteSceneRequest",
});
export const DeleteSceneResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "DeleteSceneResponse",
});
export const DeleteSyncJobRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    syncSource: S.String.pipe(T.HttpLabel("syncSource")),
}).pipe(T.all(T.Http({
    method: "DELETE",
    uri: "/workspaces/{workspaceId}/sync-jobs/{syncSource}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteSyncJobRequest",
});
export const DeleteSyncJobResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ state: S.String })).annotate({
    identifier: "DeleteSyncJobResponse",
});
export const DeleteWorkspaceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ workspaceId: S.String.pipe(T.HttpLabel("workspaceId")) }).pipe(T.all(T.Http({ method: "DELETE", uri: "/workspaces/{workspaceId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "DeleteWorkspaceRequest",
});
export const DeleteWorkspaceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ message: S.optional(S.String) })).annotate({
    identifier: "DeleteWorkspaceResponse",
});
export const ExecuteQueryRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String,
    queryStatement: S.String,
    maxResults: S.optional(S.Number),
    nextToken: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "POST", uri: "/queries/execution" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ExecuteQueryRequest",
});
export const ColumnDescription = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ name: S.optional(S.String), type: S.optional(S.String) })).annotate({
    identifier: "ColumnDescription",
});
export const ColumnDescriptions = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ColumnDescription);
export const RowData = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.Any);
export const Row = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ rowData: S.optional(RowData) })).annotate({ identifier: "Row" });
export const Rows = /*@__PURE__*/ /*#__PURE__*/ S.Array(Row);
export const ExecuteQueryResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    columnDescriptions: S.optional(ColumnDescriptions),
    rows: S.optional(Rows),
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ExecuteQueryResponse",
});
export const GetComponentTypeRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    componentTypeId: S.String.pipe(T.HttpLabel("componentTypeId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/workspaces/{workspaceId}/component-types/{componentTypeId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetComponentTypeRequest",
});
export const PropertyDefinitionResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    dataType: DataType,
    isTimeSeries: S.Boolean,
    isRequiredInEntity: S.Boolean,
    isExternalId: S.Boolean,
    isStoredExternally: S.Boolean,
    isImported: S.Boolean,
    isFinal: S.Boolean,
    isInherited: S.Boolean,
    defaultValue: S.optional(DataValue),
    configuration: S.optional(Configuration),
    displayName: S.optional(S.String),
})).annotate({
    identifier: "PropertyDefinitionResponse",
});
export const PropertyDefinitionsResponse = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, PropertyDefinitionResponse.pipe(S.optional));
export const FunctionResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    requiredProperties: S.optional(RequiredProperties),
    scope: S.optional(S.String),
    implementedBy: S.optional(DataConnector),
    isInherited: S.optional(S.Boolean),
})).annotate({
    identifier: "FunctionResponse",
});
export const FunctionsResponse = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, FunctionResponse.pipe(S.optional));
export const Status = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ state: S.optional(S.String), error: S.optional(ErrorDetails) })).annotate({ identifier: "Status" });
export const PropertyGroupResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    groupType: S.String,
    propertyNames: PropertyNames,
    isInherited: S.Boolean,
})).annotate({
    identifier: "PropertyGroupResponse",
});
export const PropertyGroupsResponse = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, PropertyGroupResponse.pipe(S.optional));
export const CompositeComponentTypeResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    componentTypeId: S.optional(S.String),
    isInherited: S.optional(S.Boolean),
})).annotate({
    identifier: "CompositeComponentTypeResponse",
});
export const CompositeComponentTypesResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, CompositeComponentTypeResponse.pipe(S.optional));
export const GetComponentTypeResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String,
    isSingleton: S.optional(S.Boolean),
    componentTypeId: S.String,
    description: S.optional(S.String),
    propertyDefinitions: S.optional(PropertyDefinitionsResponse),
    extendsFrom: S.optional(ExtendsFrom),
    functions: S.optional(FunctionsResponse),
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    arn: S.String,
    isAbstract: S.optional(S.Boolean),
    isSchemaInitialized: S.optional(S.Boolean),
    status: S.optional(Status),
    propertyGroups: S.optional(PropertyGroupsResponse),
    syncSource: S.optional(S.String),
    componentTypeName: S.optional(S.String),
    compositeComponentTypes: S.optional(CompositeComponentTypesResponse),
})).annotate({
    identifier: "GetComponentTypeResponse",
});
export const GetEntityRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    entityId: S.String.pipe(T.HttpLabel("entityId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/workspaces/{workspaceId}/entities/{entityId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetEntityRequest",
});
export const PropertyResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    definition: S.optional(PropertyDefinitionResponse),
    value: S.optional(DataValue),
    areAllPropertyValuesReturned: S.optional(S.Boolean),
})).annotate({
    identifier: "PropertyResponse",
});
export const PropertyResponses = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, PropertyResponse.pipe(S.optional));
export const ComponentPropertyGroupResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    groupType: S.String,
    propertyNames: PropertyNames,
    isInherited: S.Boolean,
})).annotate({
    identifier: "ComponentPropertyGroupResponse",
});
export const ComponentPropertyGroupResponses = 
/*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, ComponentPropertyGroupResponse.pipe(S.optional));
export const ComponentSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    componentName: S.String,
    componentTypeId: S.String,
    definedIn: S.optional(S.String),
    description: S.optional(S.String),
    propertyGroups: S.optional(ComponentPropertyGroupResponses),
    status: Status,
    syncSource: S.optional(S.String),
    componentPath: S.optional(S.String),
})).annotate({
    identifier: "ComponentSummary",
});
export const CompositeComponentResponse = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, ComponentSummary.pipe(S.optional));
export const ComponentResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    componentName: S.optional(S.String),
    description: S.optional(S.String),
    componentTypeId: S.optional(S.String),
    status: S.optional(Status),
    definedIn: S.optional(S.String),
    properties: S.optional(PropertyResponses),
    propertyGroups: S.optional(ComponentPropertyGroupResponses),
    syncSource: S.optional(S.String),
    areAllPropertiesReturned: S.optional(S.Boolean),
    compositeComponents: S.optional(CompositeComponentResponse),
    areAllCompositeComponentsReturned: S.optional(S.Boolean),
})).annotate({
    identifier: "ComponentResponse",
});
export const ComponentsMap = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, ComponentResponse.pipe(S.optional));
export const GetEntityResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    entityId: S.String,
    entityName: S.String,
    arn: S.String,
    status: Status,
    workspaceId: S.String,
    description: S.optional(S.String),
    components: S.optional(ComponentsMap),
    parentEntityId: S.String,
    hasChildEntities: S.Boolean,
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    syncSource: S.optional(S.String),
    areAllComponentsReturned: S.optional(S.Boolean),
})).annotate({
    identifier: "GetEntityResponse",
});
export const GetMetadataTransferJobRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    metadataTransferJobId: S.String.pipe(T.HttpLabel("metadataTransferJobId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/metadata-transfer-jobs/{metadataTransferJobId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetMetadataTransferJobRequest",
});
export const GetMetadataTransferJobResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    metadataTransferJobId: S.String,
    arn: S.String,
    description: S.optional(S.String),
    sources: SourceConfigurations,
    destination: DestinationConfiguration,
    metadataTransferJobRole: S.String,
    reportUrl: S.optional(S.String),
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    status: MetadataTransferJobStatus,
    progress: S.optional(MetadataTransferJobProgress),
})).annotate({
    identifier: "GetMetadataTransferJobResponse",
});
export const GetPricingPlanRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({}).pipe(T.all(T.Http({ method: "GET", uri: "/pricingplan" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetPricingPlanRequest",
});
export const PricingBundles = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const BundleInformation = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ bundleNames: PricingBundles, pricingTier: S.optional(S.String) })).annotate({
    identifier: "BundleInformation",
});
export const PricingPlan = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    billableEntityCount: S.optional(S.Number),
    bundleInformation: S.optional(BundleInformation),
    effectiveDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    pricingMode: S.String,
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    updateReason: S.String,
})).annotate({ identifier: "PricingPlan" });
export const GetPricingPlanResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    currentPricingPlan: PricingPlan,
    pendingPricingPlan: S.optional(PricingPlan),
})).annotate({
    identifier: "GetPricingPlanResponse",
});
export const SelectedPropertyList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const OrderBy = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ order: S.optional(S.String), propertyName: S.String })).annotate({ identifier: "OrderBy" });
export const OrderByList = /*@__PURE__*/ /*#__PURE__*/ S.Array(OrderBy);
export const PropertyFilter = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    propertyName: S.optional(S.String),
    operator: S.optional(S.String),
    value: S.optional(DataValue),
})).annotate({ identifier: "PropertyFilter" });
export const PropertyFilters = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(PropertyFilter);
export const TabularConditions = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    orderBy: S.optional(OrderByList),
    propertyFilters: S.optional(PropertyFilters),
})).annotate({
    identifier: "TabularConditions",
});
export const GetPropertyValueRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    componentName: S.optional(S.String),
    componentPath: S.optional(S.String),
    componentTypeId: S.optional(S.String),
    entityId: S.optional(S.String),
    selectedProperties: SelectedPropertyList,
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    maxResults: S.optional(S.Number),
    nextToken: S.optional(S.String),
    propertyGroupName: S.optional(S.String),
    tabularConditions: S.optional(TabularConditions),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workspaces/{workspaceId}/entity-properties/value",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetPropertyValueRequest",
});
export const PropertyLatestValue = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    propertyReference: EntityPropertyReference,
    propertyValue: S.optional(DataValue),
})).annotate({
    identifier: "PropertyLatestValue",
});
export const PropertyLatestValueMap = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, PropertyLatestValue.pipe(S.optional));
export const PropertyTableValue = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.suspend(() => DataValue)
    .annotate({ identifier: "DataValue" })
    .pipe(S.optional));
export const TabularPropertyValue = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(PropertyTableValue);
export const TabularPropertyValues = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(TabularPropertyValue);
export const GetPropertyValueResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    propertyValues: S.optional(PropertyLatestValueMap),
    nextToken: S.optional(S.String),
    tabularPropertyValues: S.optional(TabularPropertyValues),
})).annotate({
    identifier: "GetPropertyValueResponse",
});
export const InterpolationParameters = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    interpolationType: S.optional(S.String),
    intervalInSeconds: S.optional(S.Number),
})).annotate({
    identifier: "InterpolationParameters",
});
export const GetPropertyValueHistoryRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    entityId: S.optional(S.String),
    componentName: S.optional(S.String),
    componentPath: S.optional(S.String),
    componentTypeId: S.optional(S.String),
    selectedProperties: SelectedPropertyList,
    propertyFilters: S.optional(PropertyFilters),
    startDateTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    endDateTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    interpolation: S.optional(InterpolationParameters),
    nextToken: S.optional(S.String),
    maxResults: S.optional(S.Number),
    orderByTime: S.optional(S.String),
    startTime: S.optional(S.String),
    endTime: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workspaces/{workspaceId}/entity-properties/history",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetPropertyValueHistoryRequest",
});
export const Values = /*@__PURE__*/ /*#__PURE__*/ S.Array(PropertyValue);
export const PropertyValueHistory = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    entityPropertyReference: EntityPropertyReference,
    values: S.optional(Values),
})).annotate({
    identifier: "PropertyValueHistory",
});
export const PropertyValueList = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(PropertyValueHistory);
export const GetPropertyValueHistoryResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    propertyValues: PropertyValueList,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "GetPropertyValueHistoryResponse",
});
export const GetSceneRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    sceneId: S.String.pipe(T.HttpLabel("sceneId")),
}).pipe(T.all(T.Http({
    method: "GET",
    uri: "/workspaces/{workspaceId}/scenes/{sceneId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetSceneRequest",
});
export const GeneratedSceneMetadataMap = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, S.String.pipe(S.optional));
export const SceneError = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ code: S.optional(S.String), message: S.optional(S.String) })).annotate({ identifier: "SceneError" });
export const GetSceneResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String,
    sceneId: S.String,
    contentLocation: S.String,
    arn: S.String,
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    description: S.optional(S.String),
    capabilities: S.optional(SceneCapabilities),
    sceneMetadata: S.optional(SceneMetadataMap),
    generatedSceneMetadata: S.optional(GeneratedSceneMetadataMap),
    error: S.optional(SceneError),
})).annotate({
    identifier: "GetSceneResponse",
});
export const GetSyncJobRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    syncSource: S.String.pipe(T.HttpLabel("syncSource")),
    workspaceId: S.optional(S.String).pipe(T.HttpQuery("workspace")),
}).pipe(T.all(T.Http({ method: "GET", uri: "/sync-jobs/{syncSource}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetSyncJobRequest",
});
export const SyncJobStatus = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ state: S.optional(S.String), error: S.optional(ErrorDetails) })).annotate({ identifier: "SyncJobStatus" });
export const GetSyncJobResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    arn: S.String,
    workspaceId: S.String,
    syncSource: S.String,
    syncRole: S.String,
    status: SyncJobStatus,
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
})).annotate({
    identifier: "GetSyncJobResponse",
});
export const GetWorkspaceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ workspaceId: S.String.pipe(T.HttpLabel("workspaceId")) }).pipe(T.all(T.Http({ method: "GET", uri: "/workspaces/{workspaceId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "GetWorkspaceRequest",
});
export const LinkedServices = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const GetWorkspaceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String,
    arn: S.String,
    description: S.optional(S.String),
    linkedServices: S.optional(LinkedServices),
    s3Location: S.optional(S.String),
    role: S.optional(S.String),
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
})).annotate({
    identifier: "GetWorkspaceResponse",
});
export const ListComponentsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    entityId: S.String.pipe(T.HttpLabel("entityId")),
    componentPath: S.optional(S.String),
    maxResults: S.optional(S.Number),
    nextToken: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workspaces/{workspaceId}/entities/{entityId}/components-list",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListComponentsRequest",
});
export const ComponentSummaries = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ComponentSummary);
export const ListComponentsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    componentSummaries: ComponentSummaries,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListComponentsResponse",
});
export const ListComponentTypesFilter = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ extendsFrom: S.String }),
    S.Struct({ namespace: S.String }),
    S.Struct({ isAbstract: S.Boolean }),
]);
export const ListComponentTypesFilters = /*@__PURE__*/ /*#__PURE__*/ S.Array(ListComponentTypesFilter);
export const ListComponentTypesRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    filters: S.optional(ListComponentTypesFilters),
    nextToken: S.optional(S.String),
    maxResults: S.optional(S.Number),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workspaces/{workspaceId}/component-types-list",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListComponentTypesRequest",
});
export const ComponentTypeSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    arn: S.String,
    componentTypeId: S.String,
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    description: S.optional(S.String),
    status: S.optional(Status),
    componentTypeName: S.optional(S.String),
})).annotate({
    identifier: "ComponentTypeSummary",
});
export const ComponentTypeSummaries = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ComponentTypeSummary);
export const ListComponentTypesResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String,
    componentTypeSummaries: ComponentTypeSummaries,
    nextToken: S.optional(S.String),
    maxResults: S.optional(S.Number),
})).annotate({
    identifier: "ListComponentTypesResponse",
});
export const ListEntitiesFilter = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ parentEntityId: S.String }),
    S.Struct({ componentTypeId: S.String }),
    S.Struct({ externalId: S.String }),
]);
export const ListEntitiesFilters = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ListEntitiesFilter);
export const ListEntitiesRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    filters: S.optional(ListEntitiesFilters),
    maxResults: S.optional(S.Number),
    nextToken: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workspaces/{workspaceId}/entities-list",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListEntitiesRequest",
});
export const EntitySummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    entityId: S.String,
    entityName: S.String,
    arn: S.String,
    parentEntityId: S.optional(S.String),
    status: Status,
    description: S.optional(S.String),
    hasChildEntities: S.optional(S.Boolean),
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
})).annotate({ identifier: "EntitySummary" });
export const EntitySummaries = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(EntitySummary);
export const ListEntitiesResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    entitySummaries: S.optional(EntitySummaries),
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListEntitiesResponse",
});
export const ListMetadataTransferJobsFilter = 
/*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ workspaceId: S.String }),
    S.Struct({ state: S.String }),
]);
export const ListMetadataTransferJobsFilters = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(ListMetadataTransferJobsFilter);
export const ListMetadataTransferJobsRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    sourceType: S.String,
    destinationType: S.String,
    filters: S.optional(ListMetadataTransferJobsFilters),
    nextToken: S.optional(S.String),
    maxResults: S.optional(S.Number),
}).pipe(T.all(T.Http({ method: "POST", uri: "/metadata-transfer-jobs-list" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListMetadataTransferJobsRequest",
});
export const MetadataTransferJobSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    metadataTransferJobId: S.String,
    arn: S.String,
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    status: MetadataTransferJobStatus,
    progress: S.optional(MetadataTransferJobProgress),
})).annotate({
    identifier: "MetadataTransferJobSummary",
});
export const MetadataTransferJobSummaries = /*@__PURE__*/ /*#__PURE__*/ S.Array(MetadataTransferJobSummary);
export const ListMetadataTransferJobsResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    metadataTransferJobSummaries: MetadataTransferJobSummaries,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListMetadataTransferJobsResponse",
});
export const ListPropertiesRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    componentName: S.optional(S.String),
    componentPath: S.optional(S.String),
    entityId: S.String,
    maxResults: S.optional(S.Number),
    nextToken: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workspaces/{workspaceId}/properties-list",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListPropertiesRequest",
});
export const PropertySummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    definition: S.optional(PropertyDefinitionResponse),
    propertyName: S.String,
    value: S.optional(DataValue),
    areAllPropertyValuesReturned: S.optional(S.Boolean),
})).annotate({
    identifier: "PropertySummary",
});
export const PropertySummaries = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(PropertySummary);
export const ListPropertiesResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    propertySummaries: PropertySummaries,
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListPropertiesResponse",
});
export const ListScenesRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    maxResults: S.optional(S.Number),
    nextToken: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "POST", uri: "/workspaces/{workspaceId}/scenes-list" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListScenesRequest",
});
export const SceneSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    sceneId: S.String,
    contentLocation: S.String,
    arn: S.String,
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    description: S.optional(S.String),
})).annotate({ identifier: "SceneSummary" });
export const SceneSummaries = /*@__PURE__*/ /*#__PURE__*/ S.Array(SceneSummary);
export const ListScenesResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    sceneSummaries: S.optional(SceneSummaries),
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListScenesResponse",
});
export const ListSyncJobsRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    maxResults: S.optional(S.Number),
    nextToken: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workspaces/{workspaceId}/sync-jobs-list",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListSyncJobsRequest",
});
export const SyncJobSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    arn: S.optional(S.String),
    workspaceId: S.optional(S.String),
    syncSource: S.optional(S.String),
    status: S.optional(SyncJobStatus),
    creationDateTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
    updateDateTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({ identifier: "SyncJobSummary" });
export const SyncJobSummaries = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SyncJobSummary);
export const ListSyncJobsResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    syncJobSummaries: S.optional(SyncJobSummaries),
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListSyncJobsResponse",
});
export const SyncResourceFilter = /*@__PURE__*/ /*#__PURE__*/ S.Union([
    S.Struct({ state: S.String }),
    S.Struct({ resourceType: S.String }),
    S.Struct({ resourceId: S.String }),
    S.Struct({ externalId: S.String }),
]);
export const SyncResourceFilters = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SyncResourceFilter);
export const ListSyncResourcesRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    syncSource: S.String.pipe(T.HttpLabel("syncSource")),
    filters: S.optional(SyncResourceFilters),
    maxResults: S.optional(S.Number),
    nextToken: S.optional(S.String),
}).pipe(T.all(T.Http({
    method: "POST",
    uri: "/workspaces/{workspaceId}/sync-jobs/{syncSource}/resources-list",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListSyncResourcesRequest",
});
export const SyncResourceStatus = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ state: S.optional(S.String), error: S.optional(ErrorDetails) })).annotate({
    identifier: "SyncResourceStatus",
});
export const SyncResourceSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    resourceType: S.optional(S.String),
    externalId: S.optional(S.String),
    resourceId: S.optional(S.String),
    status: S.optional(SyncResourceStatus),
    updateDateTime: S.optional(S.Date.pipe(T.TimestampFormat("epoch-seconds"))),
})).annotate({
    identifier: "SyncResourceSummary",
});
export const SyncResourceSummaries = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(SyncResourceSummary);
export const ListSyncResourcesResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    syncResources: S.optional(SyncResourceSummaries),
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListSyncResourcesResponse",
});
export const ListTagsForResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    resourceARN: S.String,
    maxResults: S.optional(S.Number),
    nextToken: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "POST", uri: "/tags-list" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListTagsForResourceRequest",
});
export const ListTagsForResourceResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ tags: S.optional(TagMap), nextToken: S.optional(S.String) })).annotate({
    identifier: "ListTagsForResourceResponse",
});
export const ListWorkspacesRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    maxResults: S.optional(S.Number),
    nextToken: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "POST", uri: "/workspaces-list" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "ListWorkspacesRequest",
});
export const WorkspaceSummary = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String,
    arn: S.String,
    description: S.optional(S.String),
    linkedServices: S.optional(LinkedServices),
    creationDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
})).annotate({
    identifier: "WorkspaceSummary",
});
export const WorkspaceSummaries = 
/*@__PURE__*/ /*#__PURE__*/ S.Array(WorkspaceSummary);
export const ListWorkspacesResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceSummaries: S.optional(WorkspaceSummaries),
    nextToken: S.optional(S.String),
})).annotate({
    identifier: "ListWorkspacesResponse",
});
export const TagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ resourceARN: S.String, tags: TagMap }).pipe(T.all(T.Http({ method: "POST", uri: "/tags" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "TagResourceRequest",
});
export const TagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "TagResourceResponse",
});
export const TagKeyList = /*@__PURE__*/ /*#__PURE__*/ S.Array(S.String);
export const UntagResourceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    resourceARN: S.String.pipe(T.HttpQuery("resourceARN")),
    tagKeys: TagKeyList.pipe(T.HttpQuery("tagKeys")),
}).pipe(T.all(T.Http({ method: "DELETE", uri: "/tags" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UntagResourceRequest",
});
export const UntagResourceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({})).annotate({
    identifier: "UntagResourceResponse",
});
export const UpdateComponentTypeRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    isSingleton: S.optional(S.Boolean),
    componentTypeId: S.String.pipe(T.HttpLabel("componentTypeId")),
    description: S.optional(S.String),
    propertyDefinitions: S.optional(PropertyDefinitionsRequest),
    extendsFrom: S.optional(ExtendsFrom),
    functions: S.optional(FunctionsRequest),
    propertyGroups: S.optional(PropertyGroupsRequest),
    componentTypeName: S.optional(S.String),
    compositeComponentTypes: S.optional(CompositeComponentTypesRequest),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/workspaces/{workspaceId}/component-types/{componentTypeId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateComponentTypeRequest",
});
export const UpdateComponentTypeResponse = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String,
    arn: S.String,
    componentTypeId: S.String,
    state: S.String,
})).annotate({
    identifier: "UpdateComponentTypeResponse",
});
export const ComponentUpdateRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    updateType: S.optional(S.String),
    description: S.optional(S.String),
    componentTypeId: S.optional(S.String),
    propertyUpdates: S.optional(PropertyRequests),
    propertyGroupUpdates: S.optional(ComponentPropertyGroupRequests),
})).annotate({
    identifier: "ComponentUpdateRequest",
});
export const ComponentUpdatesMapRequest = /*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, ComponentUpdateRequest.pipe(S.optional));
export const CompositeComponentUpdateRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    updateType: S.optional(S.String),
    description: S.optional(S.String),
    propertyUpdates: S.optional(PropertyRequests),
    propertyGroupUpdates: S.optional(ComponentPropertyGroupRequests),
})).annotate({
    identifier: "CompositeComponentUpdateRequest",
});
export const CompositeComponentUpdatesMapRequest = 
/*@__PURE__*/ /*#__PURE__*/ S.Record(S.String, CompositeComponentUpdateRequest.pipe(S.optional));
export const ParentEntityUpdateRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ updateType: S.String, parentEntityId: S.optional(S.String) })).annotate({
    identifier: "ParentEntityUpdateRequest",
});
export const UpdateEntityRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    entityId: S.String.pipe(T.HttpLabel("entityId")),
    entityName: S.optional(S.String),
    description: S.optional(S.String),
    componentUpdates: S.optional(ComponentUpdatesMapRequest),
    compositeComponentUpdates: S.optional(CompositeComponentUpdatesMapRequest),
    parentEntityUpdate: S.optional(ParentEntityUpdateRequest),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/workspaces/{workspaceId}/entities/{entityId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateEntityRequest",
});
export const UpdateEntityResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
    state: S.String,
})).annotate({
    identifier: "UpdateEntityResponse",
});
export const UpdatePricingPlanRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    pricingMode: S.String,
    bundleNames: S.optional(PricingBundles),
}).pipe(T.all(T.Http({ method: "POST", uri: "/pricingplan" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdatePricingPlanRequest",
});
export const UpdatePricingPlanResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    currentPricingPlan: PricingPlan,
    pendingPricingPlan: S.optional(PricingPlan),
})).annotate({
    identifier: "UpdatePricingPlanResponse",
});
export const UpdateSceneRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    sceneId: S.String.pipe(T.HttpLabel("sceneId")),
    contentLocation: S.optional(S.String),
    description: S.optional(S.String),
    capabilities: S.optional(SceneCapabilities),
    sceneMetadata: S.optional(SceneMetadataMap),
}).pipe(T.all(T.Http({
    method: "PUT",
    uri: "/workspaces/{workspaceId}/scenes/{sceneId}",
}), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateSceneRequest",
});
export const UpdateSceneResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({ updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")) })).annotate({
    identifier: "UpdateSceneResponse",
});
export const UpdateWorkspaceRequest = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    workspaceId: S.String.pipe(T.HttpLabel("workspaceId")),
    description: S.optional(S.String),
    role: S.optional(S.String),
    s3Location: S.optional(S.String),
}).pipe(T.all(T.Http({ method: "PUT", uri: "/workspaces/{workspaceId}" }), svc, auth, proto, ver, rules))).annotate({
    identifier: "UpdateWorkspaceRequest",
});
export const UpdateWorkspaceResponse = /*@__PURE__*/ /*#__PURE__*/ S.suspend(() => S.Struct({
    updateDateTime: S.Date.pipe(T.TimestampFormat("epoch-seconds")),
})).annotate({
    identifier: "UpdateWorkspaceResponse",
});
//# Errors
export class InternalServerException extends S.TaggedErrorClass()("InternalServerException", { message: S.optional(S.String) }).pipe(C.withServerError) {
}
export class ResourceNotFoundException extends S.TaggedErrorClass()("ResourceNotFoundException", { message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class ThrottlingException extends S.TaggedErrorClass()("ThrottlingException", { message: S.optional(S.String) }).pipe(C.withThrottlingError) {
}
export class ValidationException extends S.TaggedErrorClass()("ValidationException", { message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
export class AccessDeniedException extends S.TaggedErrorClass()("AccessDeniedException", { message: S.optional(S.String) }).pipe(C.withAuthError) {
}
export class ConflictException extends S.TaggedErrorClass()("ConflictException", { message: S.optional(S.String) }).pipe(C.withConflictError) {
}
export class ServiceQuotaExceededException extends S.TaggedErrorClass()("ServiceQuotaExceededException", { message: S.optional(S.String) }).pipe(C.withQuotaError) {
}
export class QueryTimeoutException extends S.TaggedErrorClass()("QueryTimeoutException", { message: S.optional(S.String) }, T.Retryable()).pipe(C.withBadRequestError, C.withRetryableError) {
}
export class ConnectorFailureException extends S.TaggedErrorClass()("ConnectorFailureException", { message: S.optional(S.String) }) {
}
export class ConnectorTimeoutException extends S.TaggedErrorClass()("ConnectorTimeoutException", { message: S.optional(S.String) }) {
}
export class TooManyTagsException extends S.TaggedErrorClass()("TooManyTagsException", { message: S.optional(S.String) }).pipe(C.withBadRequestError) {
}
/**
 * Sets values for multiple time series properties.
 */
export const batchPutPropertyValues = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: BatchPutPropertyValuesRequest,
    output: BatchPutPropertyValuesResponse,
    errors: [
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Cancels the metadata transfer job.
 */
export const cancelMetadataTransferJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CancelMetadataTransferJobRequest,
    output: CancelMetadataTransferJobResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Creates a component type.
 */
export const createComponentType = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateComponentTypeRequest,
    output: CreateComponentTypeResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Creates an entity.
 */
export const createEntity = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateEntityRequest,
    output: CreateEntityResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Creates a new metadata transfer job.
 */
export const createMetadataTransferJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateMetadataTransferJobRequest,
    output: CreateMetadataTransferJobResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Creates a scene.
 */
export const createScene = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateSceneRequest,
    output: CreateSceneResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * This action creates a SyncJob.
 */
export const createSyncJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateSyncJobRequest,
    output: CreateSyncJobResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Creates a workplace.
 */
export const createWorkspace = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: CreateWorkspaceRequest,
    output: CreateWorkspaceResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Deletes a component type.
 */
export const deleteComponentType = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteComponentTypeRequest,
    output: DeleteComponentTypeResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Deletes an entity.
 */
export const deleteEntity = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteEntityRequest,
    output: DeleteEntityResponse,
    errors: [
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Deletes a scene.
 */
export const deleteScene = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteSceneRequest,
    output: DeleteSceneResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Delete the SyncJob.
 */
export const deleteSyncJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteSyncJobRequest,
    output: DeleteSyncJobResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Deletes a workspace.
 */
export const deleteWorkspace = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: DeleteWorkspaceRequest,
    output: DeleteWorkspaceResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Run queries to access information from your knowledge graph of entities within
 * individual workspaces.
 *
 * The ExecuteQuery action only works with Amazon Web Services Java SDK2.
 * ExecuteQuery will not work with any Amazon Web Services Java SDK version < 2.x.
 */
export const executeQuery = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ExecuteQueryRequest,
    output: ExecuteQueryResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        QueryTimeoutException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        pageSize: "maxResults",
    },
}));
/**
 * Retrieves information about a component type.
 */
export const getComponentType = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetComponentTypeRequest,
    output: GetComponentTypeResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Retrieves information about an entity.
 */
export const getEntity = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetEntityRequest,
    output: GetEntityResponse,
    errors: [
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Gets a nmetadata transfer job.
 */
export const getMetadataTransferJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetMetadataTransferJobRequest,
    output: GetMetadataTransferJobResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Gets the pricing plan.
 */
export const getPricingPlan = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetPricingPlanRequest,
    output: GetPricingPlanResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Gets the property values for a component, component type, entity, or workspace.
 *
 * You must specify a value for either `componentName`,
 * `componentTypeId`, `entityId`, or `workspaceId`.
 */
export const getPropertyValue = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: GetPropertyValueRequest,
    output: GetPropertyValueResponse,
    errors: [
        AccessDeniedException,
        ConnectorFailureException,
        ConnectorTimeoutException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        pageSize: "maxResults",
    },
}));
/**
 * Retrieves information about the history of a time series property value for a component,
 * component type, entity, or workspace.
 *
 * You must specify a value for `workspaceId`. For entity-specific queries,
 * specify values for `componentName` and `entityId`. For cross-entity
 * quries, specify a value for `componentTypeId`.
 */
export const getPropertyValueHistory = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: GetPropertyValueHistoryRequest,
    output: GetPropertyValueHistoryResponse,
    errors: [
        AccessDeniedException,
        ConnectorFailureException,
        ConnectorTimeoutException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        pageSize: "maxResults",
    },
}));
/**
 * Retrieves information about a scene.
 */
export const getScene = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetSceneRequest,
    output: GetSceneResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Gets the SyncJob.
 */
export const getSyncJob = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetSyncJobRequest,
    output: GetSyncJobResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Retrieves information about a workspace.
 */
export const getWorkspace = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: GetWorkspaceRequest,
    output: GetWorkspaceResponse,
    errors: [
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * This API lists the components of an entity.
 */
export const listComponents = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListComponentsRequest,
    output: ListComponentsResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        pageSize: "maxResults",
    },
}));
/**
 * Lists all component types in a workspace.
 */
export const listComponentTypes = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListComponentTypesRequest,
    output: ListComponentTypesResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        pageSize: "maxResults",
    },
}));
/**
 * Lists all entities in a workspace.
 */
export const listEntities = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListEntitiesRequest,
    output: ListEntitiesResponse,
    errors: [
        InternalServerException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        pageSize: "maxResults",
    },
}));
/**
 * Lists the metadata transfer jobs.
 */
export const listMetadataTransferJobs = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListMetadataTransferJobsRequest,
    output: ListMetadataTransferJobsResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        pageSize: "maxResults",
    },
}));
/**
 * This API lists the properties of a component.
 */
export const listProperties = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListPropertiesRequest,
    output: ListPropertiesResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        pageSize: "maxResults",
    },
}));
/**
 * Lists all scenes in a workspace.
 */
export const listScenes = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListScenesRequest,
    output: ListScenesResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        pageSize: "maxResults",
    },
}));
/**
 * List all SyncJobs.
 */
export const listSyncJobs = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListSyncJobsRequest,
    output: ListSyncJobsResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        pageSize: "maxResults",
    },
}));
/**
 * Lists the sync resources.
 */
export const listSyncResources = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListSyncResourcesRequest,
    output: ListSyncResourcesResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        pageSize: "maxResults",
    },
}));
/**
 * Lists all tags associated with a resource.
 */
export const listTagsForResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: ListTagsForResourceRequest,
    output: ListTagsForResourceResponse,
    errors: [AccessDeniedException, ResourceNotFoundException],
}));
/**
 * Retrieves information about workspaces in the current account.
 */
export const listWorkspaces = /*@__PURE__*/ /*#__PURE__*/ API.makePaginated(() => ({
    input: ListWorkspacesRequest,
    output: ListWorkspacesResponse,
    errors: [
        InternalServerException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
    pagination: {
        inputToken: "nextToken",
        outputToken: "nextToken",
        pageSize: "maxResults",
    },
}));
/**
 * Adds tags to a resource.
 */
export const tagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: TagResourceRequest,
    output: TagResourceResponse,
    errors: [
        AccessDeniedException,
        ResourceNotFoundException,
        TooManyTagsException,
    ],
}));
/**
 * Removes tags from a resource.
 */
export const untagResource = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UntagResourceRequest,
    output: UntagResourceResponse,
    errors: [AccessDeniedException, ResourceNotFoundException],
}));
/**
 * Updates information in a component type.
 */
export const updateComponentType = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateComponentTypeRequest,
    output: UpdateComponentTypeResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Updates an entity.
 */
export const updateEntity = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateEntityRequest,
    output: UpdateEntityResponse,
    errors: [
        AccessDeniedException,
        ConflictException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Update the pricing plan.
 */
export const updatePricingPlan = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdatePricingPlanRequest,
    output: UpdatePricingPlanResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Updates a scene.
 */
export const updateScene = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateSceneRequest,
    output: UpdateSceneResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ThrottlingException,
        ValidationException,
    ],
}));
/**
 * Updates a workspace.
 */
export const updateWorkspace = /*@__PURE__*/ /*#__PURE__*/ API.make(() => ({
    input: UpdateWorkspaceRequest,
    output: UpdateWorkspaceResponse,
    errors: [
        AccessDeniedException,
        InternalServerException,
        ResourceNotFoundException,
        ServiceQuotaExceededException,
        ThrottlingException,
        ValidationException,
    ],
}));
//# sourceMappingURL=iottwinmaker.js.map