Skip to content

Add initial documentation for common code #160

New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Open
wants to merge 6 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
3 changes: 2 additions & 1 deletion src/Aks/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Aks
# Aks
Common management client library for Azure Kubernetes Service. Allows modules to safely take a dependency on a .Net SDK for AKS management functions without causing dependency conflicts with the Az.AKS module.
95 changes: 94 additions & 1 deletion src/Authentication.Abstractions/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,94 @@
# Authentication Abstractions
# Authentication Abstractions
Base abstrations library for all Azure PowerShell modules.

## Restrictions
**This library cannot have API or binary breaking changes**. It is required to be completely backward compatible, this means:
- Interfaces in this library cannot be changed. New base functionality requires using the interface `Extensions` property, or defining a new interface
- For abstract and concrete classes, methods and properties may be added, but may not be changed or removed.
## Target
NetStandard 2.0
## Dependencies
- Hyak.Commmon (1.0.0.0)
- Microsoft.Azure.Common (2.0.0.0)
- Microsoft.Rest.ClientRuntime (2.0.0.0)
- Newtonsoft.Json (10.0.0.0)
## Interfaces
### IAccessToken
Represents a renewable access token
### IAuthenticationFactory
Abstract factory for authentication classes compatible with .Net autorest-generated libraries. Methods in this interface allow creating abstract self-renewing token-based credentials that could be applied to any client. This is the primary mechanism for authenticating clients in track 2, or other non-management clients that use AAD or MSAL bearer token authentication.
### IAzureAccount
Abstract representation of a logged-in principal
### IAzureContext
Abstract representation of the default target for authentication and Azure PowerShell commands (Environment, Tenant, Account, Subscription)
### IAzureContextContainer
A dictionary of IAzureContext objects. The default context container will contain all of the possible contexts for the logged-in identities (one context per tenant x subscription, for each logged-in principal).
### IAzureEnvironment
Abstract representation of a particular Azure Cloud. Contains the endpoints, authentication resources (scopes), and domain name suffixes associated with a particular cloud. There are built-in environments for the Azure public clouds, and users may create an environment for any on-premise, private, or air-gapped clouds.
### IAzureSession
### IAzureSubscription
Abstract representation of an ARM subscription.
### IAzureTenant
Abstract representation of an AAD Tenant
### IClientAction
Abstract representation of an action that can be performed on a client. This is generally used to alter the shape or processing of all or some requests and responses processed by the client.
### IClientFactory
Abstract factory for .Net Autorest-generated clients. This is the main entry point that cmdlets based on management clients will use to create and authenticate their clients.
### IDataStore
An abstract representation of a file store, used to abstract operations over the file system for items cached, written, or read by PowerShell cmdlets. Used mainly to mock file operations in tests, but could also be used to store PowerShell files on some other medium (like blob storage).
### IExtensibleModel
Base interface for all model interfaces - provides a dictionary of extended properties that can be used by any model. Extensions over this interface implemented in this library allow adding basic extension storage and lookup functions once and having them apply to all implementations of any interface in this library. This is used as a mechanism for adding new data, or command-specific data into the metadata caches maintained by PowerShell.
### IExtensibleSettings
Base interface for serializable settings classes. Interface allows a single extension implementation that applies to all implementing interfaces and classes.
### IFileProvider
Base abstraction for shared file data, especially used in IProfileProvider implementations- allows implementations that provide thread-safe and process-safe file access to shared files, or store files in memory.
### IHyakAuthenticationFactory
Abstract factory for authentication classes compatible with .Net Hyak generated clients
### IHyakClientAction
Abstract representation of a client configuration action for Hyak-generated clients
### IHyakClientFactory
Abstract factory for Hyak=generated clients
### IProfileProvider
Abstract collection of profile management methods, designed to be combined with an IFileProvider for any concrete implementation. Specific implementations provide thread-safe access to shared files, or cache profiles in memory.
### IRenewableToken
An abstract type for renewable tokens that are compatible with the ITokenProvider interfaces in autorest-generated and other clients. This is the primary mechanism for adapting authentication to Track 2 or non-autorest clients.
### IStorageContext
Abstract representation of an Azure Storage data plane target - provides a single aabstraction for data plane access regardless of authentication method, and regardless of the storage data plane version.
### IStorageContextProvider
Abstract representation of a factory for IStorageContext - allows using a single abstraction regardless of the implementation, which allows using this abstraction over multiple different versions of Azure Storage data and management plane APIs.

## Classes
### AzureAccount
Default implementation of IAzureAccount, includes extension property names for extension properties used in Azure Accounts.
### AzureContext
Default implementation of IAzureContext
### AzureEnvironment
Default implementation of IAzureEnvironment - a collection of properties that defines how to communicate with a particular Azure Cloud.
### AzurePSDataCollectionProfile
Serialization class for data collection settings
### AzureRmProfileProvider
Default ProfileProvider for AzureRM
### AzureSMProfileProvider
Default Profile provider for RDFE
### AzureSubscription
Default implementation of IAzureSubscription, including extension property names typically used with Subscriptions.
### AzureTenant
Default implementation fo IAzureTenant.
### DataCollectionController
Default implementation of client-side telemetry.
### DiskDataStore
Default implementation of IDataStore using the file system.

## Extensions
## Enumerations
### AzureModule
The kinds of AzureModule (in this case: Profile, ARM, RDFE)
### ContextSaveMode
The modes of context autosave (CurrentUser or Process)
## Static Classes
### AzureEnvironmentConstants
General constants defining the endpoints in the built-in Azure environments
### AzureSession
General constants used at runtime by common code, especially authentication
### EnvironmentName
General constants used in the built-in Azure environments
3 changes: 2 additions & 1 deletion src/Authorization/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Authorization
# Authorization
Common management client library for Azure Authorization Service. Allows modules to safely take a dependency on a .Net SDK for RBAC functions without causing dependency conflicts with the Az.Resources module.
3 changes: 2 additions & 1 deletion src/Compute/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Compute
# Compute
Common management client library for Azure Compute Service. Allows modules to safely take a dependency on a .Net SDK for Compute management functions without causing dependency conflicts with the Az.Compute module.
3 changes: 2 additions & 1 deletion src/Graph.Rbac/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Graph Rbac
# Graph Rbac
Common management client library for AAD Graph Service. Allows modules to safely take a dependency on a .Net SDK for AAD Graph functions without causing dependency conflicts with the Az.Resources module.
3 changes: 2 additions & 1 deletion src/KeyVault/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# KeyVault
# KeyVault
Common management client library for Azure KeyVault Service. Allows modules to safely take a dependency on a .Net SDK for KeyVault management functions without causing dependency conflicts with the Az.KeyVault module.
2 changes: 2 additions & 0 deletions src/Monitor/README.md
Original file line number Diff line number Diff line change
@@ -0,0 +1,2 @@
# Monitor
Common management client library for Azure Monitor Service. Allows modules to safely take a dependency on a .Net SDK for Monitor management functions without causing dependency conflicts with the Az.Monitor module.
3 changes: 2 additions & 1 deletion src/Network/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Network
# Network
Common management client library for Azure Network Service. Allows modules to safely take a dependency on a .Net SDK for Network management functions without causing dependency conflicts with the Az.Network module.
3 changes: 2 additions & 1 deletion src/PolicyInsights/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
PolicyInsights
# PolicyInsights
Common management client library for Azure PolicyInsights Service. Allows modules to safely take a dependency on a .Net SDK for Policy Insights management functions without causing dependency conflicts with the Az.Policy module.
3 changes: 2 additions & 1 deletion src/Storage.Management/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Storage Management
# Storage Management
Common management client library for Azure Storage Service. Allows modules to safely take a dependency on a .Net SDK for Storage management functions without causing dependency conflicts with the Az.Storage module.
3 changes: 2 additions & 1 deletion src/Storage/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Storage
# Storage
Base classes for api-version independent abstractions for Storage data plane
3 changes: 2 additions & 1 deletion src/Strategies/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Strategies
# Strategies
Common abstractions for goal-seeking deployment engine.
3 changes: 2 additions & 1 deletion src/Websites/README.md
Original file line number Diff line number Diff line change
@@ -1 +1,2 @@
# Websites
# Websites
Common management client library for Azure App Service. Allows modules to safely take a dependency on a .Net SDK for AppService management functions without causing dependency conflicts with the Az.Websites module.