Skip to content

Commit

Permalink
feat(client-license-manager-linux-subscriptions): Add support for thi…
Browse files Browse the repository at this point in the history
…rd party subscription providers, starting with RHEL subscriptions through Red Hat Subscription Manager (RHSM). Additionally, add support for tagging subscription provider resources, and detect when an instance has more than one Linux subscription and notify the customer.
  • Loading branch information
awstools committed Jul 10, 2024
1 parent f8cc6bd commit e490334
Show file tree
Hide file tree
Showing 18 changed files with 2,574 additions and 100 deletions.
56 changes: 56 additions & 0 deletions clients/client-license-manager-linux-subscriptions/README.md
Original file line number Diff line number Diff line change
Expand Up @@ -210,6 +210,22 @@ see LICENSE for more information.

## Client Commands (Operations List)

<details>
<summary>
DeregisterSubscriptionProvider
</summary>

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/license-manager-linux-subscriptions/command/DeregisterSubscriptionProviderCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/DeregisterSubscriptionProviderCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/DeregisterSubscriptionProviderCommandOutput/)

</details>
<details>
<summary>
GetRegisteredSubscriptionProvider
</summary>

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/license-manager-linux-subscriptions/command/GetRegisteredSubscriptionProviderCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/GetRegisteredSubscriptionProviderCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/GetRegisteredSubscriptionProviderCommandOutput/)

</details>
<details>
<summary>
GetServiceSettings
Expand All @@ -233,6 +249,46 @@ ListLinuxSubscriptions

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/license-manager-linux-subscriptions/command/ListLinuxSubscriptionsCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/ListLinuxSubscriptionsCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/ListLinuxSubscriptionsCommandOutput/)

</details>
<details>
<summary>
ListRegisteredSubscriptionProviders
</summary>

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/license-manager-linux-subscriptions/command/ListRegisteredSubscriptionProvidersCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/ListRegisteredSubscriptionProvidersCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/ListRegisteredSubscriptionProvidersCommandOutput/)

</details>
<details>
<summary>
ListTagsForResource
</summary>

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/license-manager-linux-subscriptions/command/ListTagsForResourceCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/ListTagsForResourceCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/ListTagsForResourceCommandOutput/)

</details>
<details>
<summary>
RegisterSubscriptionProvider
</summary>

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/license-manager-linux-subscriptions/command/RegisterSubscriptionProviderCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/RegisterSubscriptionProviderCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/RegisterSubscriptionProviderCommandOutput/)

</details>
<details>
<summary>
TagResource
</summary>

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/license-manager-linux-subscriptions/command/TagResourceCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/TagResourceCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/TagResourceCommandOutput/)

</details>
<details>
<summary>
UntagResource
</summary>

[Command API Reference](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/client/license-manager-linux-subscriptions/command/UntagResourceCommand/) / [Input](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/UntagResourceCommandInput/) / [Output](https://docs.aws.amazon.com/AWSJavaScriptSDK/v3/latest/Package/-aws-sdk-client-license-manager-linux-subscriptions/Interface/UntagResourceCommandOutput/)

</details>
<details>
<summary>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,16 @@
import { createAggregatedClient } from "@smithy/smithy-client";
import { HttpHandlerOptions as __HttpHandlerOptions } from "@smithy/types";

import {
DeregisterSubscriptionProviderCommand,
DeregisterSubscriptionProviderCommandInput,
DeregisterSubscriptionProviderCommandOutput,
} from "./commands/DeregisterSubscriptionProviderCommand";
import {
GetRegisteredSubscriptionProviderCommand,
GetRegisteredSubscriptionProviderCommandInput,
GetRegisteredSubscriptionProviderCommandOutput,
} from "./commands/GetRegisteredSubscriptionProviderCommand";
import {
GetServiceSettingsCommand,
GetServiceSettingsCommandInput,
Expand All @@ -17,6 +27,27 @@ import {
ListLinuxSubscriptionsCommandInput,
ListLinuxSubscriptionsCommandOutput,
} from "./commands/ListLinuxSubscriptionsCommand";
import {
ListRegisteredSubscriptionProvidersCommand,
ListRegisteredSubscriptionProvidersCommandInput,
ListRegisteredSubscriptionProvidersCommandOutput,
} from "./commands/ListRegisteredSubscriptionProvidersCommand";
import {
ListTagsForResourceCommand,
ListTagsForResourceCommandInput,
ListTagsForResourceCommandOutput,
} from "./commands/ListTagsForResourceCommand";
import {
RegisterSubscriptionProviderCommand,
RegisterSubscriptionProviderCommandInput,
RegisterSubscriptionProviderCommandOutput,
} from "./commands/RegisterSubscriptionProviderCommand";
import { TagResourceCommand, TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand";
import {
UntagResourceCommand,
UntagResourceCommandInput,
UntagResourceCommandOutput,
} from "./commands/UntagResourceCommand";
import {
UpdateServiceSettingsCommand,
UpdateServiceSettingsCommandInput,
Expand All @@ -28,13 +59,54 @@ import {
} from "./LicenseManagerLinuxSubscriptionsClient";

const commands = {
DeregisterSubscriptionProviderCommand,
GetRegisteredSubscriptionProviderCommand,
GetServiceSettingsCommand,
ListLinuxSubscriptionInstancesCommand,
ListLinuxSubscriptionsCommand,
ListRegisteredSubscriptionProvidersCommand,
ListTagsForResourceCommand,
RegisterSubscriptionProviderCommand,
TagResourceCommand,
UntagResourceCommand,
UpdateServiceSettingsCommand,
};

export interface LicenseManagerLinuxSubscriptions {
/**
* @see {@link DeregisterSubscriptionProviderCommand}
*/
deregisterSubscriptionProvider(
args: DeregisterSubscriptionProviderCommandInput,
options?: __HttpHandlerOptions
): Promise<DeregisterSubscriptionProviderCommandOutput>;
deregisterSubscriptionProvider(
args: DeregisterSubscriptionProviderCommandInput,
cb: (err: any, data?: DeregisterSubscriptionProviderCommandOutput) => void
): void;
deregisterSubscriptionProvider(
args: DeregisterSubscriptionProviderCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: DeregisterSubscriptionProviderCommandOutput) => void
): void;

/**
* @see {@link GetRegisteredSubscriptionProviderCommand}
*/
getRegisteredSubscriptionProvider(
args: GetRegisteredSubscriptionProviderCommandInput,
options?: __HttpHandlerOptions
): Promise<GetRegisteredSubscriptionProviderCommandOutput>;
getRegisteredSubscriptionProvider(
args: GetRegisteredSubscriptionProviderCommandInput,
cb: (err: any, data?: GetRegisteredSubscriptionProviderCommandOutput) => void
): void;
getRegisteredSubscriptionProvider(
args: GetRegisteredSubscriptionProviderCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: GetRegisteredSubscriptionProviderCommandOutput) => void
): void;

/**
* @see {@link GetServiceSettingsCommand}
*/
Expand Down Expand Up @@ -89,6 +161,80 @@ export interface LicenseManagerLinuxSubscriptions {
cb: (err: any, data?: ListLinuxSubscriptionsCommandOutput) => void
): void;

/**
* @see {@link ListRegisteredSubscriptionProvidersCommand}
*/
listRegisteredSubscriptionProviders(): Promise<ListRegisteredSubscriptionProvidersCommandOutput>;
listRegisteredSubscriptionProviders(
args: ListRegisteredSubscriptionProvidersCommandInput,
options?: __HttpHandlerOptions
): Promise<ListRegisteredSubscriptionProvidersCommandOutput>;
listRegisteredSubscriptionProviders(
args: ListRegisteredSubscriptionProvidersCommandInput,
cb: (err: any, data?: ListRegisteredSubscriptionProvidersCommandOutput) => void
): void;
listRegisteredSubscriptionProviders(
args: ListRegisteredSubscriptionProvidersCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: ListRegisteredSubscriptionProvidersCommandOutput) => void
): void;

/**
* @see {@link ListTagsForResourceCommand}
*/
listTagsForResource(
args: ListTagsForResourceCommandInput,
options?: __HttpHandlerOptions
): Promise<ListTagsForResourceCommandOutput>;
listTagsForResource(
args: ListTagsForResourceCommandInput,
cb: (err: any, data?: ListTagsForResourceCommandOutput) => void
): void;
listTagsForResource(
args: ListTagsForResourceCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: ListTagsForResourceCommandOutput) => void
): void;

/**
* @see {@link RegisterSubscriptionProviderCommand}
*/
registerSubscriptionProvider(
args: RegisterSubscriptionProviderCommandInput,
options?: __HttpHandlerOptions
): Promise<RegisterSubscriptionProviderCommandOutput>;
registerSubscriptionProvider(
args: RegisterSubscriptionProviderCommandInput,
cb: (err: any, data?: RegisterSubscriptionProviderCommandOutput) => void
): void;
registerSubscriptionProvider(
args: RegisterSubscriptionProviderCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: RegisterSubscriptionProviderCommandOutput) => void
): void;

/**
* @see {@link TagResourceCommand}
*/
tagResource(args: TagResourceCommandInput, options?: __HttpHandlerOptions): Promise<TagResourceCommandOutput>;
tagResource(args: TagResourceCommandInput, cb: (err: any, data?: TagResourceCommandOutput) => void): void;
tagResource(
args: TagResourceCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: TagResourceCommandOutput) => void
): void;

/**
* @see {@link UntagResourceCommand}
*/
untagResource(args: UntagResourceCommandInput, options?: __HttpHandlerOptions): Promise<UntagResourceCommandOutput>;
untagResource(args: UntagResourceCommandInput, cb: (err: any, data?: UntagResourceCommandOutput) => void): void;
untagResource(
args: UntagResourceCommandInput,
options: __HttpHandlerOptions,
cb: (err: any, data?: UntagResourceCommandOutput) => void
): void;

/**
* @see {@link UpdateServiceSettingsCommand}
*/
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -53,6 +53,14 @@ import {
HttpAuthSchemeResolvedConfig,
resolveHttpAuthSchemeConfig,
} from "./auth/httpAuthSchemeProvider";
import {
DeregisterSubscriptionProviderCommandInput,
DeregisterSubscriptionProviderCommandOutput,
} from "./commands/DeregisterSubscriptionProviderCommand";
import {
GetRegisteredSubscriptionProviderCommandInput,
GetRegisteredSubscriptionProviderCommandOutput,
} from "./commands/GetRegisteredSubscriptionProviderCommand";
import { GetServiceSettingsCommandInput, GetServiceSettingsCommandOutput } from "./commands/GetServiceSettingsCommand";
import {
ListLinuxSubscriptionInstancesCommandInput,
Expand All @@ -62,6 +70,20 @@ import {
ListLinuxSubscriptionsCommandInput,
ListLinuxSubscriptionsCommandOutput,
} from "./commands/ListLinuxSubscriptionsCommand";
import {
ListRegisteredSubscriptionProvidersCommandInput,
ListRegisteredSubscriptionProvidersCommandOutput,
} from "./commands/ListRegisteredSubscriptionProvidersCommand";
import {
ListTagsForResourceCommandInput,
ListTagsForResourceCommandOutput,
} from "./commands/ListTagsForResourceCommand";
import {
RegisterSubscriptionProviderCommandInput,
RegisterSubscriptionProviderCommandOutput,
} from "./commands/RegisterSubscriptionProviderCommand";
import { TagResourceCommandInput, TagResourceCommandOutput } from "./commands/TagResourceCommand";
import { UntagResourceCommandInput, UntagResourceCommandOutput } from "./commands/UntagResourceCommand";
import {
UpdateServiceSettingsCommandInput,
UpdateServiceSettingsCommandOutput,
Expand All @@ -81,18 +103,32 @@ export { __Client };
* @public
*/
export type ServiceInputTypes =
| DeregisterSubscriptionProviderCommandInput
| GetRegisteredSubscriptionProviderCommandInput
| GetServiceSettingsCommandInput
| ListLinuxSubscriptionInstancesCommandInput
| ListLinuxSubscriptionsCommandInput
| ListRegisteredSubscriptionProvidersCommandInput
| ListTagsForResourceCommandInput
| RegisterSubscriptionProviderCommandInput
| TagResourceCommandInput
| UntagResourceCommandInput
| UpdateServiceSettingsCommandInput;

/**
* @public
*/
export type ServiceOutputTypes =
| DeregisterSubscriptionProviderCommandOutput
| GetRegisteredSubscriptionProviderCommandOutput
| GetServiceSettingsCommandOutput
| ListLinuxSubscriptionInstancesCommandOutput
| ListLinuxSubscriptionsCommandOutput
| ListRegisteredSubscriptionProvidersCommandOutput
| ListTagsForResourceCommandOutput
| RegisterSubscriptionProviderCommandOutput
| TagResourceCommandOutput
| UntagResourceCommandOutput
| UpdateServiceSettingsCommandOutput;

/**
Expand Down
Loading

0 comments on commit e490334

Please sign in to comment.